Nginx 出现"413 Request Entity Too Large"的解决方法

2019-10-07 15:17:17 来源: 晴天小雨 0

摘要:在写数学公式语法规则时,因为图片过多,内容过大,导致谷歌浏览器的console中提示413-Request Entity Too Large的错误提示,对解决方式做下记录。

错误解析

“413-Request Entity Too Large”错误,是指上传的图片或文件太大,无法传到服务器中。Nginx中默认上传的文件大小为1M,所以只要图片或文件的大小超过1M,就会导致无法上传。

解决方案--新增或修改Nginx默认限制参数,重启

Default:client_max_body_size   1m;

可以选择在http{ }中设置:client_max_body_size   20m;

 也可以选择在server{ }中设置:client_max_body_size   20m;

还可以选择在location{ }中设置:client_max_body_size   20m;

三者到区别是:

在http{} 中控制着所有nginx收到的请求。

在server{}中,则控制该server收到的请求报文大小。

在location中,则报文大小限制,只对匹配了location 路由规则的请求生效。

在配置文件nginx.conf中增加或修改client_max_body_size的值

最后重启:nginx -s reload

Nginx其他参数说明

client_max_body_size

限制请求体的大小,若超过所设定的大小,返回413错误。

client_header_timeout

读取请求头的超时时间,若超过所设定的大小,返回408错误。

client_body_timeout

读取请求实体的超时时间,若超过所设定的大小,返回413错误。

proxy_connect_timeout

http请求无法立即被容器(tomcat, netty等)处理,被放在nginx的待处理池中等待被处理。此参数为等待的最长时间,默认为60秒,官方推荐最长不要超过75秒。

proxy_read_timeout

http请求被容器(tomcat, netty等)处理后,nginx会等待处理结果,也就是容器返回的response。此参数即为服务器响应时间,默认60秒。

proxy_send_timeout

http请求被服务器处理完后,把数据传返回给Nginx的用时,默认60秒。

收藏
登录发表你的评论
0条评论