我在 Windows 上託管詹金斯(歷史原因)剛剛更新1.620到2.62
一切都按預期進行,除了我無法再訪問的微小細節。僅從主機存取它才有效。
我發現了很多關於它的帖子,他們都建議更改啟動參數來設定:
--httpListenAddress=0.0.0.0
或者
--httpListenAddress=HOST
我嘗試了兩種解決方案,結果相同。當從主機透過以下方式存取時,Jenkins 可以工作:
- 127.0.0.1
- 10.0.1.11(內部IP)
- xxxx(外部IP)
- 主持人
但從任何其他機器訪問時不起作用。
我檢查了防火牆和天藍色設定。其他服務 (nexus:8081) 可以按預期存取。將連接埠更改為 8080 沒有幫助。
那是jenkins.xml
<service>
<id>jenkins</id>
<name>Jenkins</name>
<description>This service runs Jenkins continuous integration system.
</description>
<env name="JENKINS_HOME" value="%BASE%"/>
<env name="HTTP_HOST" value="HOST.cloudapp.net"/>
<executable>%JAVA_HOME%\jre\bin\java</executable>
<arguments>-Xrs -Xmx512M -Dfile.encoding=UTF8 -Dhudson.lifecycle=hudson.lifecycle.WindowsServiceLifecycle -jar "%BASE%\jenkins.war" --httpPort=80 --httpListenAddress="%HTTP_HOST%" --webroot="%BASE%\war"</arguments>
<logmode>rotate</logmode>
<onfailure action="restart" />
</service>
那是詹金斯日誌
INFO: Started w.@1750fbeb{/,file:///E:/Program%20Files%20(x86)/Jenkins/war/,AVAILABLE}{E:\Program Files (x86)\Jenkins\war}
May 25, 2017 2:17:51 AM org.eclipse.jetty.server.AbstractConnector doStart
INFO: Started ServerConnector@7ae0a9ec{HTTP/1.1,[http/1.1]}{HOST.cloudapp.net:80}
May 25, 2017 2:17:51 AM org.eclipse.jetty.server.Server doStart
INFO: Started @4534ms
May 25, 2017 2:17:51 AM winstone.Logger logInternal
INFO: Winstone Servlet Engine v4.0 running: controlPort=disabled
May 25, 2017 2:17:54 AM jenkins.InitReactorRunner$1 onAttained
INFO: Started initialization
May 25, 2017 2:17:55 AM jenkins.InitReactorRunner$1 onAttained
INFO: Listed all plugins
(removed few lines about ruby failing)
INF/jruby.home/lib/ruby/shared/rubygems/custom_require.rb:36
May 25, 2017 2:18:04 AM jenkins.InitReactorRunner$1 onTaskFailed
SEVERE: Failed Loading plugin ruby-runtime v0.12 (ruby-runtime)
May 25, 2017 2:18:40 AM hudson.WebAppMain$3 run
INFO: Jenkins is fully up and running
httpListenAddress
日誌是什麼時候0.0.0.0
:
INFO: Started ServerConnector@7ae0a9ec{HTTP/1.1,[http/1.1]}{0.0.0.0:80}
答案1
所以事實證明這個問題與詹金斯無關。因此,對於您嘗試回答的任何人,我深表歉意。 (正確的設定是使用預設值httpListenAddress
或將其設為--httpListenAddress=0.0.0.0
)
這是Windows防火牆。對老詹基斯來說——1.620防火牆有一個規則爪哇6和連接埠 80。爪哇8被阻止了。
更改防火牆規則解決了問題。
答案2
對於任何嘗試在 Windows 上使用 PowerShell 腳本安裝 Jenkins 的人來說,以下是告訴防火牆開啟連接埠的方法:
New-NetFirewallRule -Name jenkins -DisplayName 'Jenkins' -Enabled True -Direction Inbound -Protocol TCP -Action Allow -LocalPort 8080