413 Request Entity Too Large 使用 Django Admin 和 Nginx 配置上传文件
Posted
技术标签:
【中文标题】413 Request Entity Too Large 使用 Django Admin 和 Nginx 配置上传文件【英文标题】:413 Request Entity Too Large uploading files with Django Admin and Nginx Configuration 【发布时间】:2018-11-16 07:13:27 【问题描述】:每当我上传一个小文件,比如一张图片,数据都会成功保存。但是,当我上传音频文件时,我收到此错误:413 Request Entity Too Large。文件大小约为 8MB。令人困惑的部分是在开发过程中很容易上传这些文件,但现在网站已经上线,它不起作用。我读到您可以更改上传大小的限制,但似乎无法弄清楚。我读到的另一件事是,您应该将文件上传到服务器,并且可以使用 nginx。我想我配置了它;我输入了命令
scp -r * root@[my ip address] /usr/share/nginx/html
我的媒体文件夹中的文件已上传到那里。现在文件不会自动放在那里,而是被发送到项目的媒体文件夹。它不应该自动上传到Nginx服务器吗?
【问题讨论】:
How to edit nginx.conf to increase file size upload的可能重复 【参考方案1】:默认情况下,nginx 配置为允许客户端最大主体大小为 1MB。您上传的文件 (~8MB) 大于 1MB,这就是返回 413 (Request Entity Too Large) 错误的原因。
要解决此问题,只需编辑 nginx.conf 并添加 client_max_body_size
配置,如下所示:
######################
# HTTP server
######################
server
...
listen 80;
server_name xxxx.com;
client_max_body_size 20M;
...
如果您也配置了 HTTPS,请务必在此处添加 client_max_body_size
:
######################
# HTTPS server
######################
server
...
listen 443 default_server ssl;
server_name xxxx.com;
client_max_body_size 20M;
...
重新加载你的服务器,你应该会很好!
[服务器]$ sudo service nginx reload
更多关于client_max_body_size
的信息在这里:http://nginx.org/en/docs/http/ngx_http_core_module.html#client_max_body_size
语法:client_max_body_size 大小;
默认:client_max_body_size 1m;
上下文:http、服务器、位置
设置客户端请求正文的最大允许大小,在 “Content-Length”请求头字段。如果请求中的大小 超过配置值,出现 413 (Request Entity Too Large) 错误 被退回给客户。请注意,浏览器不能 正确显示此错误。将大小设置为 0 禁用检查 客户端请求正文大小。
【讨论】:
以上是关于413 Request Entity Too Large 使用 Django Admin 和 Nginx 配置上传文件的主要内容,如果未能解决你的问题,请参考以下文章
.NetCore上传大文件 413 Request Entity Too Large 错误处理
Nginx出现413 Request Entity Too Large错误解决方法
Nginx 413 Request Entity Too Large
svn 413 Request Entity Too Large 错误