springboot不能在linux中上传文件,但可以通过nginx reserve代理上传

ryhaxcpt  于 2021-07-13  发布在  Java
关注(0)|答案(0)|浏览(231)

当我上传一个文件到LinuxSpringBoot应用程序时,不管文件大小如何,它都会失败。但是在我用nginx作为反向代理设置应用程序之后,我甚至可以上传文件serveral mbs。直接上传时的错误如下:

2021-02-25 22:14:33,667 - org.springframework.web.multipart.MultipartException: Failed to parse multipart servlet request; nested exception is java.io.IOException: org.apache.tomcat.util.http.fileupload.FileUploadException: java.io.IOException: Connection reset by peer
at org.springframework.web.multipart.support.StandardMultipartHttpServletRequest.handleParseFailure(StandardMultipartHttpServletRequest.java:124)
at org.springframework.web.multipart.support.StandardMultipartHttpServletRequest.parseRequest(StandardMultipartHttpServletRequest.java:115)
at org.springframework.web.multipart.support.StandardMultipartHttpServletRequest.<init>(StandardMultipartHttpServletRequest.java:88)
at org.springframework.web.multipart.support.StandardServletMultipartResolver.resolveMultipart(StandardServletMultipartResolver.java:87)
at org.springframework.web.servlet.DispatcherServlet.checkMultipart(DispatcherServlet.java:1199)
at org.springframework.web.servlet.DispatcherServlet.doDispatch(DispatcherServlet.java:1033)
at org.springframework.web.servlet.DispatcherServlet.doService(DispatcherServlet.java:961)
at org.springframework.web.servlet.FrameworkServlet.processRequest(FrameworkServlet.java:1006)
at org.springframework.web.servlet.FrameworkServlet.doPost(FrameworkServlet.java:909)
at javax.servlet.http.HttpServlet.service(HttpServlet.java:652)
at org.springframework.web.servlet.FrameworkServlet.service(FrameworkServlet.java:883)
at javax.servlet.http.HttpServlet.service(HttpServlet.java:733)
at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:231)
at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:166)
at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:119)
at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:193)
at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:166)
at org.springframework.web.filter.CharacterEncodingFilter.doFilterInternal(CharacterEncodingFilter.java:201)
at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:119)
at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:193)
at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:166)
at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:202)
at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:97)
at org.apache.catalina.authenticator.AuthenticatorBase.invoke(AuthenticatorBase.java:542)
at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:143)
at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:92)
at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:78)
at org.apache.catalina.valves.AbstractAccessLogValve.invoke(AbstractAccessLogValve.java:690)
at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:343)
at org.apache.coyote.http11.Http11Processor.service(Http11Processor.java:374)
at org.apache.coyote.AbstractProcessorLight.process(AbstractProcessorLight.java:65)
at org.apache.coyote.AbstractProtocol$ConnectionHandler.process(AbstractProtocol.java:868)
at org.apache.tomcat.util.net.NioEndpoint$SocketProcessor.doRun(NioEndpoint.java:1590)
at org.apache.tomcat.util.net.SocketProcessorBase.run(SocketProcessorBase.java:49)
at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1149)
at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:624)
at org.apache.tomcat.util.threads.TaskThread$WrappingRunnable.run(TaskThread.java:61)
at java.lang.Thread.run(Thread.java:748)

请求头几乎相同:
==========通过nginx reserve代理

connection = keep-alive
host = BACKEND
content-length = 381
sec-ch-ua = "Google Chrome";v="87", " Not;A Brand";v="99", "Chromium";v="87"
authorization = Bearer eyJhbGciOiJIUzUxMiJ9.eyJzdWIiOiJrZG1zIiwiaWQiOjgxLCJleHAiOjE2MTQ5MjQyMDYsImlhdCI6MTYxNDMxOTQwNiwiZW1haWwiOiJrZG1zQGtpbmdiYXNlLmNvbS5jbiJ9.dpEN0tGsKtUaIbhJCyO45al1VE9c2cqVD3fKWQeorkLM6Upu2aUBX4IoOQjmwxtj70WoWrhWl9kQH1UceA9VNw
sec-ch-ua-mobile = ?0
user-agent = Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/87.0.4280.141 Safari/537.36
content-type = multipart/form-data; boundary=----WebKitFormBoundaryMV3rF6ydulun7GQn
accept = */*
origin = http://localhost
sec-fetch-site = cross-site
sec-fetch-mode = cors
sec-fetch-dest = empty
referer = http://localhost/
accept-encoding = gzip, deflate, br
accept-language = zh-CN,zh;q=0.9,en;q=0.8

=======直接调用后端应用程序

host = 192.168.1.100:8000
connection = keep-alive
content-length = 381
authorization = Bearer eyJhbGciOiJIUzUxMiJ9.eyJzdWIiOiJrZG1zIiwiaWQiOjgxLCJleHAiOjE2MTQ5MjQyMDYsImlhdCI6MTYxNDMxOTQwNiwiZW1haWwiOiJrZG1zQGtpbmdiYXNlLmNvbS5jbiJ9.dpEN0tGsKtUaIbhJCyO45al1VE9c2cqVD3fKWQeorkLM6Upu2aUBX4IoOQjmwxtj70WoWrhWl9kQH1UceA9VNw
user-agent = Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/87.0.4280.141 Safari/537.36
content-type = multipart/form-data; boundary=----WebKitFormBoundaryJYq5AGpGLcboVkzd
accept = */*
origin = http://localhost
referer = http://localhost/
accept-encoding = gzip, deflate
accept-language = zh-CN,zh;q=0.9,en;q=0.8

wireshar要捕获,每次发布时服务器都会发送rst

暂无答案!

目前还没有任何答案,快来回答吧!

相关问题