解决Tomcat的maxPostSize属性的配置需要注意的问题

需求:

近期要做大文件上传功能,除了修改前端框架上传控件jQuery Uploadify的上传文件限制大小和Spring MVC框架配置的文件上传模块中的MultipartResolver中的文件上传限制大小,还需要去修改Nginx服务器中conf目录下的nginx.conf配置文件中的client_max_body_size属性以及Tomcat服务器中conf目录下的server.xml配置文件中的connectionTimeout属性、maxPostSize属性,以上内容就是我做的修改。

问题:

先是修改Nginx服务器和Tomcat服务器的配置,重启Nginx服务器,再是修改页面和代码后重新部署和运行,然后在页面进行大文件上传操作,然后提交保存都出现了问题,自己怀疑可能是大文件保存出现了问题,忙着去查看服务器上的日志,接着同事又说文件删除功能失效,接下来又有同事说网站登录不上了,输入正确的验证码后报错说是验证码登录过期,,,,各种问题接踵而至,看了半天的服务器日志没有发现问题,还是自己看的不仔细,也没有定位到问题出现在哪里。

排查:

无奈去请求大牛,先是问我修改了哪些东西,我说Nginx服务器和Tomcat服务器的配置我都修改了,大牛看了Linux上的Nginx服务器的配置文件和Tomcat服务器的server.xml配置文件,回头问我maxPostSize=“0”属性的配置是什么意思,我说是HTTP的POST请求下的body大小不做限制,如果不设置的话,缺省的情况下是maxPostSize=“2097152”,也就是2M的大小,因为单位是Byte。大牛接着去查看了相关资料,得知可能是Tomcat版本带来的问题,不同的Tomcat版本maxPostSize属性设置的可能有差异,知道了问题所在,那么就去着手进行配置了。

解决:

百度了下Tomcat maxPostSize这两个关键词,很幸运的是第一条就是关于Tomcat不同版本的maxPostSize的设置,

这篇博客内容

看了这篇博客,接着去查看Linux下的项目使用的统一的Tomcat版本,使用的版本是Tomcat 7.0.70,接着看这篇文章你还能说什么,改呗,将属性maxPostSize修改为-1,代表不限制,重启Tomcat服务器,重新登录网站和以上出现的问题都没有了。

附上这个博主的博客地址:https://www.jb51.net/article/190134.htm

总结:想着昨天出现的这个问题,今天休息正好可以总结一下,接着去看Tomcat官网上的相关文档,去看下这个问题。如今Tomcat版本更新很快,很多Tomcat7的版本不再好找,我们可以查看最新的Tomcat7版本信息,打开Tomcat官网后,查看

Documention下的Tomcat7.0

接着查看Reference下的Configuration部分

接着查看Connectors下的HTTP部分,这个和Tomcat下的conf中的server.xml配置文件的结构有很大的相关性,只要你很熟悉server.xml配置,那么找到这个不是问题

查看相关属性,我们就会看到maxPostSize的详细介绍,这个限制必须设置为小于0的负数才能不限制,缺省下是2097152,也就是2M的大小,单位是Byte。

你要知道以上的介绍仅仅是Tomcat 7.0.86版本的信息

那么我们怎么看Tomcat历史版本的变化呢,回到刚开始进来的文档首页,点击最下方的Changelog部分,

这里面是Tomcat7所有的历史版本的变化,我们找到Tomcat 7.0.63版本,可以看到变化的第一项就是关于maxPost属性的内容,上面的博客的哥们果然是满满的干货,虽然内容少,但是一击必中啊。

通过以上的总结,如果以后出现类似的问题,排查问题的能力要有所提升,自己总结问题的排查步骤:

  • 第一:查看服务器上的各种日志
  • 第二:查看服务器上的各种配置文件
  • 第三:考虑各个版本的差异,就比如上面的问题,这个前提是你要知道你修改了哪些配置,增加了哪些配置。

总结

到此这篇关于解决Tomcat的maxPostSize属性的配置需要注意的问题的文章就介绍到这了,更多相关Tomcat的maxPostSize属性配置内容请搜索我们以前的文章或继续浏览下面的相关文章希望大家以后多多支持我们!

(0)

相关推荐

  • 关于给Tomcat设置maxPostSize的问题及注意事项

    一.为什么要设置maxPostSize tomcat容器对传输数据的大小有限制,如果上传了超过此值的文件,就会报错,使得程序不能正常使用. 二.设置方法 找到tomcat目录下的/conf/server.xml,为其添加maxPostSize参数 ​ 参数值"-1"表示不做大小限制.不设置maxPostSize参数意为使用默认的大小,默认2097152bytes,即为2megabytes. 三.设值注意事项 需要注意一点的是,在不同版本的tomcat下不限制传输数据大小的场景时,对ma

  • 解决Tomcat的maxPostSize属性的配置需要注意的问题

    需求: 近期要做大文件上传功能,除了修改前端框架上传控件jQuery Uploadify的上传文件限制大小和Spring MVC框架配置的文件上传模块中的MultipartResolver中的文件上传限制大小,还需要去修改Nginx服务器中conf目录下的nginx.conf配置文件中的client_max_body_size属性以及Tomcat服务器中conf目录下的server.xml配置文件中的connectionTimeout属性.maxPostSize属性,以上内容就是我做的修改. 问

  • Spring Boot如何配置内置Tomcat的maxPostSize值

    目录 Spring Boot配置内置Tomcat的maxPostSize值 Background Problem 1 Problem 2 Tomcat设置maxPostSize导致Post请求不过去 问题 排查问题 分析 Spring Boot配置内置Tomcat的maxPostSize值 Background 前端页面表单输入数据较多,包含多个文本.多张图片,在数据未压缩的情况下,最终上传失败. Problem 1 后端报错: java.lang.IllegalStateException:

  • 快速解决Tomcat重新配置后启动慢的问题

    Jenkins+Tomcat服务器配置过程中,修改了tomcat配置文件:然后再访问服务器的tomcat页面发现根本加载不出来 企图重启tomcat /opt/tomcat/bin/shutdown.sh 出现如下报错 [root@izbp1fmfc2pdjiw9u143xfz conf]# /opt/tomcat/bin/shutdown.sh Using CATALINA_BASE: /opt/tomcat Using CATALINA_HOME: /opt/tomcat Using CAT

  • 快速解决Tomcat启动慢的问题,超简单

    今天在帮一位同学解决了一个问题--Tomcat启动超级慢,大概五六分钟.解决之后,只需要3秒钟即可启动. 问题怎么解决呢? 在Tomcat的bin目录下找到catalina.sh,然后打开它,在以下位置添加一行代码: -Djava.security.egd=file:/dev/urandom 2019年02月12日补充:很多朋友想知道原理,我就简单说明一下. Tomcat 7和Tomcat 8在启动的时候会调用org.apache.catalina.util.SessionIdGenerator

  • Tomcat用户管理的优化配置详解

    目录 tomcat用户管理配置 tomcat优化 一.tomcat中的三种运行模式之运行模式的优化 二.tomcat执行器(线程池)的优化 三.tomcat优化之禁用AJP连接器实现动静分离 四.tomcat中JVM参数优化 tomcat用户管理配置 在tomcat-users.xml中添加用户: <role rolename="manager"/> <role rolename="manager-gui"/> <role rolena

  • 基于Tomcat 数据源的原理、配置、使用介绍

    1.数据源的作用及操作原理 在程序代码中使用数据源是可以提升操作性能的,这种性能的提升依靠于运行的原理. 传统JDBC操作步骤 1.加载数据库驱动程序,数据库驱动程序通过CLASSPATH配置: 2.通过DriverManager类取得数据库连接对象: 3.通过Connection实例化PreparedStatement对象,编写SQL命令操作数据库: 4.数据库属于资源操作,操作完成后进行数据库的关闭以释放资源.如图所示: 对于不同的用户只有操作不同,但是对于1.2.4三个步骤很明显是一个重复

  • 解决spring boot 1.5.4 配置多数据源的问题

    spring boot 已经支持多数据源配置了,无需网上好多那些编写什么类的,特别麻烦,看看如下解决方案,官方的,放心! 1.首先定义数据源配置 #=====================multiple database config============================ #ds1 first.datasource.url=jdbc:mysql://localhost/test?characterEncoding=utf8&useSSL=true first.datasou

  • 解决Tomcat使用shutdown.bat关闭会将其他Tomcat关掉的问题

    shutdown.bat文件有一句 if not "%CATALINA_HOME%" == "" goto gotHome 执行关闭命令的时候,程序会根据CATALINA_HOME去查找,这句话的意思是如果环境变量配置的这个路径不为空,就执行这个,否则就"set CATALINA_HOME=%CURRENT_DIR%",也就是将当前的路径赋值给它. 解决办法就是在 if not "%CATALINA_HOME%" == &qu

  • 解决Tomcat 中catalina.out持续累加问题

    此方法不需要修改Tomcat配置 亲测,可用 1.在tomcat  bin目录下添加文件clear_log.sh 内容如下: #!/bin/sh d=`date +%Y-%m-%d` d7=`date -d'7 day ago' +%Y-%m-%d` cp /opt/apache-tomcat-8.5.9/logs/catalina.out /opt/apache-tomcat-8.5.9/logs/catalina.${d}.log echo "" > /opt/apache-

  • Java应用服务器之tomcat会话复制集群配置的示例详解

    会话是识别用户,跟踪用户访问行为的一个手段,通过cookie(存在客户端)或session(存在服务端)来判断本次请求是那个客户端发送过来:常用的会话保持有绑定会话,就是前边我们聊的在代理上通过算法或通过给客户端响应首部加cookie这种方式来保持同一cookie或同一ip地址的请求始终发送到同一后端server进行响应:但是这样的会话绑定的方式存在一个问题,就是当后端某一server宕机,那么之前上面的所有会话信息将消失,那么后续的客户端来请求,代理是否要把请求调度到后端宕机的server呢?

随机推荐