我们无法从任何地方访问詹金斯

我们无法从任何地方访问詹金斯

我们刚刚在我们的服务器(Debian 7 wheezy)上安装了 Jenkins。它在本地网络上运行良好,但在外部网络却不行。我们搜索了各种方法,但没找到解决这个问题的方法。

我们可以 ping 我们的服务器,但是当我们访问 jenkins 的地址时,它不起作用。

答案1

可能是因为以下原因:

1)你的 Web 服务器配置

对于 Apache:允许所有

对于 tomcat:

<Host name="localhost" appBase="webapps"
            unpackWARs="true" autoDeploy="true"
            xmlValidation="false" xmlNamespaceAware="false">

应该

<Host name="www.example.com" appBase="webapps"
            unpackWARs="true" autoDeploy="true"
            xmlValidation="false" xmlNamespaceAware="false">

2)您的防火墙设置(开放外部连接端口)

3)詹金斯配置

首先,对于Debien,修改/etc/default/jenkins,添加一行HTTP_HOST=外部地址(例如HTTP_HOST=www.example.com)

然后,将 --httpListenAddress=$HTTP_HOST 添加到您的 JENKINS_ARGS (JENKINS_ARGS="--webroot=/var/cache/jenkins/war --httpPort=$HTTP_PORT --ajp13Port=$AJP_PORT --httpListenAddress=$HTTP_HOST")

最后,重启你的詹金斯

答案2

a) 在您的家用计算机(不是 Jenkins 计算机)上打开 Bash shell(Windows 上的 Git Bash 就可以了)。

b) 通过安全 SSH 隧道执行端口转发,将 Jenkins 计算机上的端口 8080“映射”到家庭计算机上的端口 8080。在 Git Bash shell 中执行此操作的命令是:

ssh -L 127.0.0.1:8080:本地主机:8080[电子邮件保护]-i“C:\PathToFolderContainingMySecretKey”

这里 xx.yyy.zzz.ab ​​是你的公共互联网地址(例如 62.187.151.9)。请注意,-i 后面的路径是你计算机上存储私钥的路径,该私钥与你在 Jenkins 计算机上使用的公钥相匹配。

c) 现在,您的家用电脑可以像这样连接: http://本地主机:8080

d) 首次配置 Jenkins 时,您需要初始管理员密码。获取方法如下。在家用电脑的 Git Bash shell 中(请记住,您已经通过 SSH 连接到 Jenkins 电脑):

sudo cat /var/lib/jenkins/secrets/initialAdminPassword

将其复制并粘贴到您的浏览器中,就可以了!

相关内容