Nginx 413 Request Too Large 错误

今天公司后台上传图片出现  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

本文分享完毕,感谢支持点赞~~

原文地址:https://www.cnblogs.com/mike666/p/14132303.html