如何更改 Jenkins/Jetty 最大 header 尺寸

How to change Jenkins/Jetty max header size

运行 带有嵌入式 Jetty 的 Jenkins 服务器,我在 Jenkins 日志中收到关于 headers 过大的错误:

Feb 15, 2017 3:18:15 PM org.eclipse.jetty.util.log.JavaUtilLog warn WARNING: header full: java.lang.ArrayIndexOutOfBoundsException: 8192

我想增加 Jetty 最大 header 大小但找不到如何做,在 Jenkins 的情况下...我找不到任何 Jetty 配置文件并且不'不知道我是否可以在 Jenkins 命令行上设置限制(以及要定义的变量的名称是什么)。

如何实现?

如果使用 self-running jenkins.war 中的 built-in 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.

要么将 war 部署到一个完整的容器中,然后您可以调整该值,要么更改您使用 Jenkins 的方式以不发送过多的 URI 或 HTTP headers(例如使用 POST 与 GET).

要调整 Jetty 9 header 缓冲区的最大大小,您需要将 HttpConfiguration 中的 requestHeaderSize 调整为您希望新设置的 ServerConnector存在于.

将此参数添加到 jenkins 配置中:

JENKINS_ARGS="--requestHeaderSize=258140"