概览
在使用 Halo 上传附件时,如果收到 413 Request Entity Too Large 错误,通常不是 Halo 本身的限制,而是前置 Nginx 反向代理对请求体大小的限制所导致的。
原因分析
Nginx 默认的 client_max_body_size 为 1m(1 MB)。当上传的文件超过这个限制时,Nginx 会在文件到达 Halo 之前直接拒绝请求,并返回 HTTP 413 错误。
解决方法
在 Nginx 配置文件对应的 server 节点中添加 client_max_body_size 指令,将限制调整为适合你需求的值。
server {
listen 80;
server_name example.com;
client_max_body_size 1024m;
# 其他配置...
}修改完成后,重新加载 Nginx 配置使其生效:
nginx -s reload参数说明
注意事项
修改前建议评估服务器的磁盘空间和带宽,避免因无限制上传导致资源耗尽;
如果使用 Docker 部署且 Nginx 也运行在容器中,需要修改容器内或挂载的 Nginx 配置文件,然后重启容器或执行 reload。