Nginx:报错 413 Requst Entity Too Latrge 的错误解决方法
前言
Nginx出现的413 Request Entity Too Large错误,这个错误一般在请求包体的时候出现,大小超出了 Nginx 允许的最大值,如果没有配置的话,默认是1M。
进行前端接口请求时,报错413错误,在报错信息上可以看出是Nginx报的错,因为是经过了Nginx的转发请求,所以很可能是Nginx做了限制,只需要将
client_max_body_size
的参数调大即可。
解决方法
修改Nginx的配置文件(一般在/usr/local/nginx/conf/nginx.conf这个位置)的“client_max_body_size
”属性来解决,在 http{}
段中增大nginx上传文件大小限制
该属性有三个地方可以配置,不通的地方的作用域不同。
a) 在http节点下(http全局)
1 | http { |
以上配置可以控制全局nginx所有请求报文大小
b) 在server节点下(server全局)
1 | server { |
以上配置可以控制该server的所有请求报文大小
c) 在location节点下(单应用)
1 | location /test { |
以上配置可以控制满足该路由规则的请求报文大小
重启nginx
修改完配置文件后,重启nginx即可。
扩展资料
限制请求体的大小,默认1m,若超过所设定的大小,返回413错误。
client_max_body_size 50m;
读取请求头的超时时间,若超过所设定的大小,返回408错误。
client_header_timeout 1m;
读取请求实体的超时时间,若超过所设定的大小,返回413错误。
client_body_timeout 1m;
http请求无法立即被容器(tomcat, netty等)处理,被放在nginx的待处理池中等待被处理。此参数为等待的最长时间,默认为60秒,官方推荐最长不要超过75秒
proxy_connect_timeout 60s;
http请求被容器(tomcat, netty等)处理后,nginx会等待处理结果,也就是容器返回的response。此参数即为服务器响应时间,默认60秒
proxy_read_timeout 1m;
http请求被服务器处理完后,把数据传返回给Nginx的用时,默认60秒
proxy_send_timeout 1m;
备注:
- (1)可以在http{ }中设置:client_max_body_size 20m;
- (2)也可以在server{ }中设置:client_max_body_size 20m;
- (3)还可以在location{ }中设置:client_max_body_size 20m;
http{} 中控制着所有nginx收到的请求。
如果配置在server{}中,则控制该server收到的请求报文大小。
如果配置在location中,则报文大小限制,只对匹配了location 路由规则的请求生效。