2

我在 JENKINS 的 WAN 链接上遇到了缓慢的下载时间。不讨论问题的细节,我想配置 Jenkins 显然使用的 Jetty 来添加以下连接器:

<New class="org.eclipse.jetty.server.nio.SelectChannelConnector">
 <Set name="host"><Property name="application-host"/></Set>
 <Set name="port"><Property name="application-port"/></Set>
 <Set name="forwarded">true</Set>
 <Set name="responseBufferSize">16777216</Set>
 <Set name="responseHeaderSize">1048576</Set>
</New>

但我不确定什么是正确的位置。我在安装的任何地方都找不到 jetty.xml 文件。我在 Windows 上使用 Jenkins,所以我想我只是使用 java -jar jenkins.war 启动它,它应该使用 Jetty/Winstone。

编辑:看起来这不能仅仅通过更改配置来完成。至少不在 SSL 上下文中:https ://github.com/J-cztery/winstone/blob/master/src/java/winstone/HttpsConnectorFactory.java硬编码创建 ServerContext。

4

1 回答 1

4

如果您不使用像 Tomcat 这样的自定义 servlet 容器,那么 Jenkins 确实使用了内置的“Jetty/Winstone”容器。更准确地说:Jenkins 使用 Jetty 包装器来实现 Winstone 命令行界面(动机是在不更改界面的情况下从旧的 Winstone 切换到 Jetty)。

可以通过直接在 Jenkins 命令行上添加选项来自定义 Jetty 容器(也就是说,在您的 Windows 情况下,通过将它们添加到文件中的<arguments>标签中jenkins.xml

可用选项(如,或--httpPort--sessionTimeout记录在github 上的Jenkins winstone 存储库中。

如果这些选项还不够,那么您可以通过修改以下部分来进一步自定义容器pom.xml

      <connectors>
        <connector implementation="org.eclipse.jetty.server.nio.SelectChannelConnector">
            <port>${port}</port>
        </connector>
      </connectors>

...或通过编辑web.xml文件。至少后者可以在不更改war文件的情况下通过编辑解压缩的$JENKINS_HOME/war/WEB-INF/web.xml. 不过,我也没有尝试过。

于 2016-08-15T10:12:25.060 回答