You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Nginx+Docker+Django环境下413请求实体过大问题求助

解决Nginx 413 Request Entity Too Large错误的正确配置方式

你遇到的413错误是因为Nginx默认限制了请求体大小(默认约1MB),添加client_max_body_size配置即可解决。你之前添加时报错,大概率是配置位置不对或者语法有误,以下是正确的配置示例:

修改后的nginx default.conf

upstream django {
    server store:27038;
}

server {
    listen 27036;
    # 直接添加在server块的listen指令下方即可
    client_max_body_size 100M;

    location /static {
        alias /vol/static;
    }
    
    location / {
        proxy_pass http://django;
        proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for; 
        proxy_set_header Host $host;
        proxy_redirect off;
    }
}

常见报错原因及其他配置方式

  • 语法错误:确保配置末尾加了分号;,这是Nginx配置的必要语法规范
  • 全局生效配置:如果想让所有服务都生效,可以在Nginx主配置文件(通常是/etc/nginx/nginx.conf)的http块中添加client_max_body_size 100M;,不过针对单个server配置更灵活

Docker环境下的生效步骤

因为你的Nginx配置是通过Dockerfile COPY进去的,修改配置后需要重新构建镜像并启动容器:

# 如果用docker-compose
docker-compose up -d --build nginx

# 如果是单独容器
docker stop <your-nginx-container-name>
docker build -t your-nginx-image .
docker run -d --name your-nginx-container your-nginx-image

额外检查点

如果修改Nginx后仍然报错,需要检查后端Django的上传限制:

  • 在Django的settings.py中设置:
    # 限制内存中处理的文件大小,超过则写入临时文件
    FILE_UPLOAD_MAX_MEMORY_SIZE = 104857600  # 100MB
    # 最大上传文件大小
    MAX_UPLOAD_SIZE = 104857600
    

内容的提问来源于stack exchange,提问作者Monk

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.15 18:50:26