tomcat服务器之maxHttpHeaderSize

背景:在OA流程表单中,填写了200条数据,一提交,秒报400错误,且请求没有打到后端中(无报错日志),一开始以为是谷歌浏览器的问题,可百度上关于这个错误的解决方案都是清除缓存,即使清除完缓存,问题依旧存在。但当数据填写10几条的时候,又能提交通过。
在这里插入图片描述

问题排查过程

1. Nginx拦截该请求

既然没有打到后端,在想是不是Nginx的问题。由于请求数据量较大,Nginx可能进行拦截,于是不使用域名访问该接口,使用ip加端口的方式访问,结果依旧出现该错误,因此可以排除是Nginx的问题,服务器本身就出错了

2.Tomcat限制请求

在Tomcat的service.xml中,有如下配置,是关于限制请求大小,其中maxPostSize是限制Post请求最大值,一般是限制上传文件的大小;maxHttpHeaderSize是限制http请求头最大值,如果请求头的大小超过这个值,那么会报 400(Bad Request)错误。于是我试着将maxHttpHeaderSize的值调大,结果问题就能解决了。

<Connector port="8080" protocol="HTTP/1.1"
maxThreads="1000" acceptCount="1000" 
connectionTimeout="30000" redirectPort="8443" 
maxPostSize="10485760" maxHttpHeaderSize="16384" 
disableUploadTimeout="true" URIEncoding="UTF-8"
compression="on" compressionMinSize="20480"
/>

3. maxHttpHeaderSize设置多少合适

maxHttpHeaderSize设置不能过大,在Tomcat 8 中,默认是4KB,只有出现我这次的错误,才需要调大,若能正常使用了,就无需调大。且调增的过程中,应该一点一点的往上增加,不能一下只加太多,否则会容易OOM!!可以进一步点击这里查看导致OOM的原因:https://blog.csdn.net/deel_feel/article/details/115736614

相关推荐

  1. tomcat与Apache---一起学习吧服务器

    2024-06-07 08:42:02       61 阅读

最近更新

  1. docker php8.1+nginx base 镜像 dockerfile 配置

    2024-06-07 08:42:02       94 阅读
  2. Could not load dynamic library ‘cudart64_100.dll‘

    2024-06-07 08:42:02       101 阅读
  3. 在Django里面运行非项目文件

    2024-06-07 08:42:02       82 阅读
  4. Python语言-面向对象

    2024-06-07 08:42:02       91 阅读

热门阅读

  1. DNN模型介绍

    2024-06-07 08:42:02       29 阅读
  2. 麒麟 V10 系统 创建LVM

    2024-06-07 08:42:02       31 阅读
  3. R语言中取向量子集

    2024-06-07 08:42:02       27 阅读
  4. R与Python:编程语言间的差异与魅力

    2024-06-07 08:42:02       27 阅读
  5. 量子计算:未来技术的变革与应用

    2024-06-07 08:42:02       30 阅读
  6. Quartz 中的错过机制MisFire

    2024-06-07 08:42:02       34 阅读