本文介绍: nginx 413 Request Entity Too Large, 接口返回413 报413错误。这种问题通常实在使用http请求对象太大的时候出现

博客背景:JAVA项目前端想弄个便捷富文本,直接很多图片base64编码直接存库了。字段longtext类型

这种问题通常是在使用http请求对象太大的时候。。

问题排查

1、如果是超长的话varchar类型改成longtext类型
2、依旧怀疑超长的话,搜了一下longtext最大长度

mysql里3种text类型最大长度如下
● TEXT 65,535 bytes ~64kb
● MEDIUMTEXT 16,777,215 bytes ~16Mb
● LONGTEXT 4,294,967,295 bytes ~4Gb

肯定没超长,就直接去线上看了请求。。很直接。。
需要修改nginx请求默认大小

在这里插入图片描述

解决方案

1、修改nginx配置文件nginx.conf

限制请求体的大小默认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 路由规则的请求生效

nginx.conf文件

http{
#控制全局nginx所有请求报文大小
#client_max_body_size   20m;
                 server{
 #控制该server的所有请求报文大小
 #client_max_body_size   20m;
                         location a {
                         }
                         location b{
 #控制满足该路由规则的请求报文大小
 #client_max_body_size   20m;
                         }
                 }
                 server {
                 }
      }

2、更新完成后需要重启nginx

 sudo systemctl restart nginx

3、其他可能性

Tomcat
Tomcatserver.xml中,maxPostSize参数限制post请求报文体的最大值默认值是2M(2097152 (2 megabytes).)
如果server.xml中并没有配置的话,就是默认参数值。

前端
node服务使用Egg.js框架,而Egg配置jsonLimit,会限制json报文体的大小。
如果没有配置的话,默认是100k

参考https://blog.csdn.net/weixin_32006353/article/details/115981342
https://blog.csdn.net/z69183787/article/details/83070275

原文地址:https://blog.csdn.net/weixin_44436677/article/details/128124312

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任

如若转载,请注明出处:http://www.7code.cn/show_15611.html

如若内容造成侵权/违法违规/事实不符,请联系代码007邮箱suwngjj01@126.com进行投诉反馈,一经查实,立即删除

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注