下面是我的设置:
1.在服务器上运行的Jenkins主服务器,假设其域名为jenkins.master.host,即直接访问Jenkins主服务器的URL为http://jenkins.master.host:8080
- Apache HTTPD运行在另一台服务器上,假设其域名为jenkins. master. proxy. HTTPD配置为侦听端口80并代理到jenkins主服务器,即通过apache访问jenkins主服务器,使用URL http://jenkins.master.proxy。
1.在“Manage Jenkins”->“Configure System”下,将Jenkins URL配置为apache httpd URL,即http://jenkins.master.proxy
1.在“Manage Jenkins”->“Configure Global Security”(管理Jenkins->配置全局安全性)下,从服务器被配置为在固定的TCP端口9020上运行。
1.在“Manage Jenkins”->“Manage Nodes”下,我创建了一个名为“TestSlave”的新节点。
1.在下载JNLP以启动从机之后,连接到主机的小的从机代理窗口仍然停留在“Connecting to 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 master或Apache HTTPD中进行一些配置以使slave连接?Jenkins slave代理的小窗口仍然停留在“Connecting to jenkins.master.proxy:9020(retries:11)"上。也许我需要在Apache HTTPD中添加另一个VirtualHost来侦听端口9020?我尝试过这样做,但没有成功。
有想法将不胜感激。
1条答案
按热度按时间guicsvcw1#
看看这篇文章:Jenkins:如何在Nginx反向代理后面配置Jenkins以连接JNLP从站
我通过在jetty配置中将系统属性哈德逊. TcpSlaveAgentName.hostName设置为jenkins.master.host解决了这个问题。