问题描述

请求标头较长的请求在尝试访问 Jira 时可能会收到错误“400 Bad Request: Message Request header is too large”错误。

问题分析

HTTP 请求中标头 大小  大于 Web 服务器或应用程序服务器中设置的限制时,会出现此错误消息 

Apache Tomcat 限制了请求和响应 HTTP 标头的允许大小 ,使用属性maxHttpHeaderSize以字节为单位指定。如果未指定,此属性将设置为默认值,具体取决于 Apache Tomcat 版本。

Jira 确实使用值maxHttpHeaderSize="8192"配置 Tomcat 

解决方案

  • 编辑<jira install>/conf/server.xml 并将 maxHttpHeaderSize 的值增加到更大的大小,例如“15588”:

    <Connector port="8080" relaxedPathChars="[]|" relaxedQueryChars="[]|{}^\`"<>"
    maxThreads="150" minSpareThreads="25" connectionTimeout="20000" enableLookups="false"
    maxHttpHeaderSize="5588" protocol="HTTP/1.1" useBodyEncodingForURI="true" redirectPort="8443"
    acceptCount="100" disableUploadTimeout="true" bindOnInit="false"/>
    CODE
  • 重启服务器