1

以下是我的设置:

  1. Jenkins master 在服务器上运行,假设它的域名是 jenkins.master.host,即直接访问 Jenkins master 的 URL 是http://jenkins.master.host:8080

  2. Apache HTTPD 在不同的服务器上运行,假设它的域名是 jenkins.master.proxy。HTTPD 被配置为监听 80 端口并代理到 jenkins master,即通过 apache 访问 Jenkins master,使用 URL http://jenkins.master.proxy

  3. 在“Manage Jenkins”->“Configure System”下,将Jenkins URL配置为apache httpd URL,即http://jenkins.master.proxy

  4. 在 "Manage Jenkins" -> "Configure Global Security" 下,slave 被配置为在固定的 TCP 端口 9020 上运行。

  5. 在“管理 Jenkins”->“管理节点”下,我创建了一个名为“TestSlave”的新节点。

  6. 下载 JNLP 启动从站后,连接到主站的小从站代理窗口仍然卡在“连接到 jenkins.master.proxy:9020”

JNLP 如下:

<jnlp codebase="http://jenkins.master.proxy/computer/TestSlave/" spec="1.0+">
    <information>
        <title>Agent for TestSlave</title>
        <vendor>Jenkins project</vendor>
        <homepage href="https://jenkins-ci.org/"/>
    </information>
    <security>
        <all-permissions/>
    </security>
    <resources>
        <j2se version="1.7+"/>
        <jar href="http://jenkins.master.proxy/jnlpJars/remoting.jar"/>
        <property name="hudson.showWindowsServiceInstallLink" value="true"/>
    </resources>
    <application-desc main-class="hudson.remoting.jnlp.Main">
        <argument>*******************************************</argument>
        <argument>TestSlave</argument>
        <argument>-url</argument>
        <argument>http://jenkins.master.proxy/</argument>
    </application-desc>
</jnlp>

Apache HTTPD 配置如下:

<VirtualHost *:80>
    ServerName jenkins.master.proxy
    ProxyPass / http://jenkins.master.host:8080/ nocanon Keepalive=On
    ProxyPassReverse / http://jenkins.master.host:8080/
    AllowEncodedSlashes On
    ErrorLog logs/jenkins/error.log
</VirtualHost>

是否需要将一些配置放入 Jenkins 主服务器或 apache HTTPD 以使从服务器连接?小詹金斯奴隶代理窗口仍然停留在“连接到 jenkins.master.proxy:9020 (retrying:11)”。也许我需要在 apache HTTPD 中添加另一个 VirtualHost 来监听端口 9020?我曾尝试这样做,但没有成功。

想法将不胜感激。

非常感谢

4

1 回答 1

2

看看这篇文章:Jenkins: How to configure Jenkins behind Nginx reverse proxy for JNLP slaves to connect

我通过在我的码头配置上将系统属性hudson.TcpSlaveAgentListener.hostName设置为jenkins.master.host解决了这个问题。

于 2017-11-08T10:02:20.037 回答