背景:
最近闲暇之余写了一个半自动化的项目部署的项目,因为发现之前使用的jenkins太消耗服务器资源了,由于现在又不想升级服务器,就自己写一个半自动化的。其实就是一些java执行我在服务器上面写好的.sh
的脚本即可,或者执行一些linux命令
案发现场
*NET:ERR_CONNECTION_RESET**
从单词的字面意思是,错误连接重置,百度了下,说什么文件上传大小控制的文件。
解决思路
代码语言:javascript复制1,查看下tomcat下的文件上传限制
2,Nginx的文件控制
第一步(spring boot中)
由于我是spring boot项目,所以是内置tomcat的,我们就要通过代码的形式修改tomcat的文件限制大小
代码语言:javascript复制@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是否设置了上传文件总大小的限制
代码语言:javascript复制 <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
文件
添加如下配置:client_max_body_size
最后重启nginx
,问题解决。