解决 Nginx 413 Request Entity Too Large 错误
当在使用 Nginx 服务器时,上传文件或提交大量数据时可能会遇到 “413 Request Entity Too Large” 错误。这个错误通常是因为请求体大小超出了服务器的限制。要解决这个问题,可以通过调整 Nginx 的配置文件来增加允许的请求体大小限制。
问题场景
在服务器上部署了一套后台环境,使用的是nginx反向代理,在后台里上传一个超过10M的文件报错:413 Request Entity Too Large
解决方案
1. 修改 nginx.conf 文件
可以通过编辑 nginx.conf 文件来设置 client_max_body_size
指令,以允许更大的请求体大小
全局设置 (http{})
如果希望全局应用相同的请求体大小限制,可以在 http{}
块内设置 client_max_body_size
。这会影响到所有的服务器块和位置块。
http {
# 其他配置项...
# 设置全局请求体大小限制为 20MB
client_max_body_size 20M;
# 其他配置项...
}
服务器级设置 (server{})
如果希望针对特定的服务器(例如特定的虚拟主机或域名)设置不同的请求体大小限制,可以在 server{}
块内设置 client_max_body_size
。
server {
listen 80;
server_name example.com;
# 其他服务器配置项...
# 设置该服务器的请求体大小限制为 20MB
client_max_body_size 20M;
# 其他服务器配置项...
}
路径级设置 (location{})
如果只想针对特定的路径或路由设置不同的请求体大小限制,可以在 location{}
块内设置 client_max_body_size
。
server {
listen 80;
server_name example.com;
# 其他服务器配置项...
location /upload {
# 设置该路径下的请求体大小限制为 20MB
client_max_body_size 20M;
# 其他 location 配置项...
}
# 其他服务器配置项...
}
2. 保存并重启 Nginx
在进行任何更改后,保存 nginx.conf
文件,并使用以下命令重新加载 Nginx 以使配置生效:
sudo nginx -s reload
或
systemctl restart nginx