关于我当前项目前端资源部署到了nginx,然后反向代理到gateway网关再路由到具体的 springBoot项目微服务时,上传图片文件的一些问题

1.第一个报错

首先是访问自家部署在nginx时的前端页面时,然后在上传文件时,报错,打开chrome控制栏:

“413 Request Entity Too Large”

查询到的大概意思是

错误 代表请求包太大,服务器拒绝响应;

经过查询才知道原来nginx1.3之后默认允许最大请求是2m,nginx1.3之前是1m。

解决办法:

nginx的配置文件nginx.conf中,添加这么一句client_max_body_size 80m; 意思是最大请求是80m。这个配置可以放到 http段 或者 server段 或者 location段。

image-20221128113047379

保存,nginx -s reload,一下:

2. 第二个报错

解决掉了第一个,以为就可以上传了;第一个是浏览器报的错,第一个是java代码后台报的错,

报错大概的信息:

org.apache.tomcat.util.http.fileupload.impl.FileSizeLimitExceededException

经过查询得知:

springBoot项目自带的tomcat对上传的文件大小有默认的限制,SpringBoot官方文档中展示:每个文件的配置最大为1Mb,单次请求的文件的总数不能大于10Mb。

解决办法

具体问题具体分析,针对我当前的项目问题

1.在当前服务的nacos配置管理中心加入以下配置

spring:
  servlet:
    multipart:
       maxFileSize: 50MB #单个数据大小
       maxRequestSize: 100MB #总数据大小

2. 在网关微服务的nacos配置管理中心加入以下配置

spring:
  servlet:
    multipart:
       maxFileSize: 50MB #单个数据大小
       maxRequestSize: 100MB #总数据大小

重启微服务跟网关,重新访问访问上传成功,此项目问题得到解决:

Logo

技术共进,成长同行——讯飞AI开发者社区

更多推荐