今天公司后台上传图片出现 413 Request Too Large 错误,字面意思就是请求太大导致报错
分析一下,因为后台上传图片到 nginx 太大了超过默认值导致默认值
报错如下:
Nginx中的 client_max_body_size 配置属性
Syntax: client_max_body_size size; Default: client_max_body_size 1m; Context: http, server, location
设置客户端请求正文的最大允许大小,在“Content-Length”请求标头字段中指定。如果请求中的大小超过配置的值,则会将413(请求实体太大)错误返回给客户端请注意,浏览器无法正确显示此错误。将大小设置为0将禁用检查客户端请求正文大小
client_max_body_size指令的默认值为1 MiB,它可以被设置在http,server和location语境如在大多数情况下,该指令在嵌套块优先于祖先块相同的指令
终于明白出现 413 状态码的原因是 nginx client_max_body_size 默认值为1M
那么我们只需要修改 client_max_body_size 默认值问题就可以迎刃而解
解决
在nginx.conf配置文件里修改,只需要在对应的头部添加就可以
如果你想全局 nginx 生效就在 http 头部加,你只想一个域名生效就在server里面添加,只想一个路径生效就在location加
http 下添加
http {
client_max_body_size 50m;
}
http下添加nginx会全局生效,实体大小限制为50M
server下添加
server {
client_max_body_size 50m;
}
server下添加只会生效在 server这个配置文件下,实体大小限制为50M
location下添加
location /app {
client_max_body_size 50m;
}
location下添加将此路由请求的实体大小限制为50M
重新加载或者启动nginx
[root@Mike-VM-Node1 ~]# nginx -t [root@Mike-VM-Node1 ~]# nginx -s reload [root@Mike-VM-Node1 ~]# systemctl restart nginx
本文分享完毕,感谢支持点赞~~