【问题标题】:How to change Jenkins/Jetty max header size如何更改 Jenkins/Jetty 最大标头大小
【发布时间】:2017-02-15 16:44:35
【问题描述】:
使用嵌入式 Jetty 运行 Jenkins 服务器,我收到有关 Jenkins 日志中的标头太大的错误:
2017 年 2 月 15 日下午 3:18:15 org.eclipse.jetty.util.log.JavaUtilLog 警告
警告:标头已满:java.lang.ArrayIndexOutOfBoundsException:8192
我想增加 Jetty 的最大标头大小,但在 Jenkins 的情况下找不到如何做...我找不到任何 Jetty 配置文件,不知道是否可以在 Jenkins 命令行上设置限制(以及要定义的变量的名称是什么)。
如何做到这一点?
【问题讨论】:
标签:
jenkins
jetty
embedded-jetty
【解决方案1】:
如果使用自运行 jenkins.war 中的内置 Jetty,则无法调整该值。
你只能调整参数的最大数量。
--maxParamCount=N = set the max number of parameters allowed in a form submission to protect
against hash DoS attack (oCERT #2011-003). Default is 10000.
要么将战争部署到一个完整的容器,然后您可以调整值,或者更改您使用 Jenkins 的方式以不发送过多的 URI 或 HTTP 标头(例如使用 POST 与 GET)。
要调整 Jetty 9 标头缓冲区的最大大小,您需要调整 HttpConfiguration 中的 requestHeaderSize 以匹配您希望新设置存在的 ServerConnector。
【解决方案2】:
将此参数添加到 jenkins 配置中:
JENKINS_ARGS="--requestHeaderSize=258140"