案发现场
*NET:ERR_CONNECTION_RESET**
从单词的字面意思是,错误连接重置,百度了下,说什么文件上传大小控制的文件。
解决思路
1,查看下tomcat下的文件上传限制
2,Nginx的文件控制
第一步(spring boot中)
由于我是spring boot项目,所以是内置tomcat的,我们就要通过代码的形式修改tomcat的文件限制大小
@PropertySource("classpath:/module.properties") @Configuration public class TomcatConfig { @Value("${spring.server.MaxFileSize}") private String MaxFileSize; @Value("${spring.server.MaxRequestSize}") private String MaxRequestSize; @Bean public MultipartConfigElement multipartConfigElement() { MultipartConfigFactory factory = new MultipartConfigFactory(); // 单个数据大小 factory.setMaxFileSize(MaxFileSize); // KB,MB /// 总上传数据大小 factory.setMaxRequestSize(MaxRequestSize); return factory.createMultipartConfig(); }
module.properties 文件的配置如下
#单个文件大小 spring.server.MaxFileSize=100MB
#总文件大小 spring.server.MaxRequestSize=300MB
第一步非spring boot项目 ,外部tomcat配置文件server.xml是否设置了上传文件总大小的限制
<Connector port="8080" protocol="HTTP/1.1" maxHttpHeaderSize="8089" useBodyEncodingForURI="true" maxPostSize="20971520" maxThreads="2048" redirectPort="8443" enableLookups="false" compression="on" compressionMinSize="2048" compressableMimeType="text/html,text/xml,text/javascript,text/css,text/plain" connectionTimeout="20000" disableUploadTimeout="true" URIEncoding="UTF-8"/>
第二步查看nginx的文件上传控制
我们可以看看 nginx的中文档的官方文档中的HTTP Core模块
下
浏览器(catr +F
)全局搜索一下client_max_body_size,会发现,nginx默认设置了这个限制上传文件总大小的值为1M
最终
经过排查我的问题出在nginx上,至于为什么会想到这个步骤的问题,是因为之前在公司负责了一个通知公告的项目,里面有遇到过上传到100M文件突然上转中断,后来通过运维知道,是nginx配置的问题。所以我们来配置,nginx下的conf/nginx.conf
文件
最后重启nginx
,问题解决。