当前位置:   article > 正文

【网络】post请求 net::ERR_CONNECTION_RESET 报错原因

net::err_connection_reset

本次遇到情况是因为Nginx中请求头过长,修改配置文件从1K->16k,问题解决


以下为此问题其他解决方法总结

本机和测试环境都是OK的。但是一到线上就报错;可能原因总结如下:

可能是服务器限制了文件上传的权限。

  解决方法:开通了文件上传权限。

也许导致这种错误的方式有很多,可能是因为post请求时提交的数据过多而导致的。

  解决办法:修改tomcat的配置文件server.xml,或修改nginx里面配置的上传文件最大值

3 服务器未开启;

  如静态文件运行时没有开启静态资源服务器就会报这个错误

4 跨域请求的问题;

  如上传excel表格时,打开FQ就可以进行上传,否则会报net::ERR_CONNECTION_RESET

5 域名下作了文件上传进行了限制;

       比如项目上线了,公司内网访问需要FQ,在公司内部测试正式环境时,相当于从内网像外上传文件,一般公司的信息安全部门会有限制这个权限;找到信息安全负责人确认

一、查看一下tomcat配置文件server.xml是否设置了上传文件总大小的限制
    注意下面的maxPostSize,它就是设置限制上传文件的大小的属性,单位是B

  1. <Connector port="8080" protocol="HTTP/1.1"  
  2.                 maxHttpHeaderSize="8192"   
  3.                 useBodyEncodingForURI="true"  
  4.                 maxPostSize="20971520"  
  5.                 maxThreads="2048"  
  6.                 redirectPort="8443"  
  7.                 enableLookups="false"  
  8.                 compression="on"  
  9.                 compressionMinSize="2048"  
  10.                                  compressableMimeType="text/html,text/xml,text/javascript,text/css,text/plain"  
  11.                 connectionTimeout="20000"  
  12.                 disableUploadTimeout="true"  
  13.                 URIEncoding="UTF-8"/>  


    至于怎么详细设置,由于不关前端的事情,所以我只能大概给出出问题的原因是在这里。

二、查看nginx服务器是否没有设置上传文件总大小
   一般我们现在做项目都用前后端分离,然后用nginx作为反向代理解决跨域问题。但是nginx一些配置错误有时候会导致一些bug出现。比如文件上传。如果发现后台配置上传文件的总大小是没问题的话,那么问题就有可能出现在nginx的配置中了。
    我们来看看nginx的文档,这是我看的某个中文文档,具体什么版本不详,文档地址是nginx中文API文档

    其中,我们找到http core模块http core模块API,然后浏览器全局搜索一下client_max_body_size,我们会发现,nginx帮我们默认设置了这个限制上传文件总大小的值为1M,如下图:

    找到了如何修改上传文件大小后,那就去搞事情。我们去到nginx的配置文件中,如下图路径:

    然后找到nginx.conf这个文件,用记事本或者sublime text3打开(只要能打开不乱码就行),修改后台给你的API接口的配置

如下图:

  1. server {
  2.         listen       8054;
  3.         server_name  localhost;
  4.         location /upload {
  5.             proxy_pass   http://127.0.0.1:8001/ct-upload-service;
  6.             #set size of upload files    
  7.             client_max_body_size 100m;
  8.         }
  9. }


    proxy_pass设置的是后台给我的批量上传文件的API接口,然后client_max_body_size设置的是允许上传的所有文件的总大小,单位是m,我一般用小写,没细究过大写行不行,因为nginx文档也是用小写的,然后记得重新启动nginx服务器!

三、总结
    这个就没什么需要总结的,经过配置nginx.conf后,我的批量上传就没问题了。做前后端分离,用到nginx,自己对nginx配置不熟,有时间学习前端之外,还要把nginx学完才行,各位加油!
 

声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/2023面试高手/article/detail/181467
推荐阅读
相关标签
  

闽ICP备14008679号