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

配置NGINX最大上传大小无效,上传图片遇413错误求助

解决Docker部署Nginx代理Django时413请求实体过大问题

1. 先确认Nginx配置是否真的生效

  • 进入Nginx容器执行 nginx -T(大写T),会输出当前所有生效的配置,搜索client_max_body_size,确认是否存在1024M的设置,避免被其他配置覆盖。
  • 若使用Docker Compose部署,检查本地配置文件的挂载路径是否正确——比如是否将本地的nginx.conf/default.conf挂载到容器内的/etc/nginx/nginx.conf或/etc/nginx/conf.d/default.conf,挂载错误会导致配置无法生效。

2. 排查是否有多层代理限制

如果架构中存在多层Nginx代理(比如前端还有反向代理,或使用了云服务商的负载均衡、CDN),这些中间层也会限制请求体大小,需要在所有代理层都添加client_max_body_size 1024M;配置。

3. 检查uWSGI的请求体限制

uWSGI默认请求体大小限制约1MB,需修改其配置:

  • 在uwsgi.ini配置文件中添加:
limit-post = 1073741824  # 对应1024MB,单位为字节
  • 或在启动uWSGI时添加参数:--limit-post 1073741824
    修改完成后重启uWSGI对应的容器。

4. 调整Django的上传大小限制

Django默认的DATA_UPLOAD_MAX_MEMORY_SIZE和FILE_UPLOAD_MAX_MEMORY_SIZE约为2.5MB,超过该值会将文件写入临时文件,但过小的限制也会引发问题,在settings.py中修改:

DATA_UPLOAD_MAX_MEMORY_SIZE = 1073741824  # 1024MB
FILE_UPLOAD_MAX_MEMORY_SIZE = 1073741824

5. 重启相关容器

修改所有配置后,必须重启Nginx和Django/uWSGI容器,确保配置生效:

  • 使用Docker Compose:docker-compose restart nginx django
  • 单个容器:docker restart <nginx容器名> 和 docker restart <django容器名>

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.28 04:53:00