413 Request Entity Too Large nginx配置
睿诺
最后编辑于 2025年3月17日
413 Request Entity Too Large
错误表示客户端发送的请求实体(如文件上传)超过了服务器允许的大小限制。要解决这个问题,你需要在 Nginx 配置中调整 client_max_body_size
参数。
解决方法
- 修改 Nginx 配置文件:
打开 Nginx 的配置文件(通常是/etc/nginx/nginx.conf
或/etc/nginx/conf.d/default.conf
),找到http
、server
或location
块,并添加或修改client_max_body_size
参数。
http {
# 设置全局的最大请求体大小
client_max_body_size 20M;
}
server {
listen 80;
server_name example.com;
# 针对特定 server 块设置最大请求体大小
client_max_body_size 20M;
location /upload {
# 针对特定 location 块设置最大请求体大小
client_max_body_size 50M;
}
}
client_max_body_size
的值可以根据需要调整,例如20M
表示 20MB,50M
表示 50MB。- 你可以将其设置在
http
、server
或location
块中,具体取决于你想要的应用范围。
- 重启 Nginx:
修改配置文件后,需要重启 Nginx 以使更改生效。
sudo systemctl restart nginx
或者:
sudo service nginx restart
- 检查其他限制:
如果你使用的是反向代理或其他中间件(如 PHP-FPM),还需要确保这些服务也有足够的上传限制。例如,在 PHP 中,你需要检查upload_max_filesize
和post_max_size
参数。
; php.ini 文件
upload_max_filesize = 20M
post_max_size = 20M
- 测试:
修改后,尝试重新上传文件,确认问题是否解决。
注意事项
- 如果
client_max_body_size
设置为0
,则表示不限制请求体大小,但这可能会带来安全风险,建议根据实际需求设置合理的值。 - 如果你使用的是 Docker 或其他容器化环境,确保在容器内的 Nginx 配置中也进行了相应的修改。
通过以上步骤,你应该能够解决 413 Request Entity Too Large
错误。