python - 413 Request Entity Too Large 使用 Django Admin 和 Nginx 配置上传文件
问题描述
每当我上传一个小文件(例如图像)时,数据都会成功保存。但是,当我上传音频文件时,我收到此错误:413 Request Entity Too Large。文件大小约为 8MB。令人困惑的部分是在开发过程中很容易上传这些文件,但现在网站已经上线,它不起作用。我读到您可以更改上传大小的限制,但似乎无法弄清楚。我读到的另一件事是,您应该将文件上传到服务器,并且可以使用 Nginx。我想我配置了它;我输入了命令
scp -r * root@[my ip address] /usr/share/nginx/html
并且我的媒体文件夹中的文件已上传到那里。现在文件不会自动放在那里,而是被发送到项目的媒体文件夹。它不应该自动上传到Nginx服务器吗?
解决方案
默认情况下,nginx 配置为允许客户端最大主体大小为 1MB。您上传的文件 (~8MB) 大于 1MB,这就是返回 413(请求实体太大)错误的原因。
要解决此问题,只需编辑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(请求实体太大)错误。请注意,浏览器无法正确显示此错误。将 size 设置为 0 将禁用对客户端请求正文大小的检查。
推荐阅读
- c++ - 哪个更快,Union 还是 std::variant<>?
- javascript - Discord JS - 等待消息 - 多个问题
- python - 在 Django 中创建另一个对象时创建对象
- mysql - 如何使用从自定义 MySQL Docker 映像创建容器的 GenericContainer 配置 spring 数据源
- vba - 为导出添加水印
- excel - 如何计算并导出outlook中类别的数量和名称到excel
- batch-file - 如何使用 /pflag "i" 开关仅用 jrepl 替换文本文件中的第一个匹配项?
- spring-kafka - 如何在消息聊天室中管理 kafka 主题
- php - omnipay 中的 curl 命令
- java - Fetch join 导致 N+1 查询或抛出 org.hibernate.QueryException