我正在尝试按照此处的说明操作:https://wiki.jenkins-ci.org/display/JENKINS/Running+Jenkins+behind+Apache将我的Jenkins服务器设置为http://myhost/jenkins。它有效,但Jenkins网站认为http://myhost/是jenkins / root。
我认为这个问题是由该网页上的第一个警告标志引起的,即我的上下文路径设置不正确。但是,我无法弄清楚在哪里设置上下文路径。 ubuntu和windows的说明很清楚,但是在Mac OS X 10.6上,没有jenkins.xml文件,没有/ etc / default / jenkins文件,我在〜/ .jenkins / config.xml中看不到任何相关内容。
那么,我错过了什么?我在哪里可以告诉jenkins它的根在/ jenkins /而不是/?
答案 0 :(得分:28)
从你提到的文件中解释;
您需要指定Jenkins实例的上下文/前缀,这可以通过修改Jenkins配置来完成,如下所示; 或者,通过修改jenkins.xml配置文件并在条目中添加--prefix = / jenkins(或类似)来设置上下文路径。 或者在使用时通过将/prefix = / jenkins添加到/ etc / default / jenkins(Ubuntu)中的JENKINS_ARGS或相应的启动文件中来设置上下文路径。
那么,如何找到这些东西......
Jenkins.xml文件应该在$ JENKINS_HOME目录中,我不确定Mac OS是否有“updatedb”和“locate”命令,但你可以尝试updatedb && locate jenkins.xml
另外,看看启动脚本; /etc/init.d如果从包中安装,或者将JENKINS_ARGS添加到运行Jenkins的用户的环境属性(附加到~user/.profile
)或运行Jenkins的容器的参数。
请注意,如果您的Jenkins安装(没有prefix
参数)在:
http://myserver:8080/ => 200 Jenkins is here
在参数中添加--prefix=/ci/dashboard
将产生此行为:
http://myserver:8080/ => 404
http://myserver:8080/ci/dashboard => 200 Jenkins is now here
答案 1 :(得分:10)
不确定在config.xml中查找的位置,但在http://myhost/jenkins/configure,有一个名为“Jenkins URL”的选项可用于设置。
答案 2 :(得分:9)
将前缀属性添加到/ etc / default / jenkins文件中:
JENKINS_ARGS =“ - webroot = / var / cache / jenkins / war - prefix = / jenkins --httpPort = $ HTTP_PORT --ajp13Port = $ AJP_PORT
配置您的网络服务器(例如 - nginx)以将/jenkins
重定向到localhost:8080;
答案 3 :(得分:9)
为了提供一些最近确认的建议方法,在CentOS 7上,使用Jenkins 1.610,我能够通过更改 jenkins.model.JenkinsLocationConfiguration.xml中的 jenkinsUrl 来实现这一点。 / strong>到期望的一个(例如http://127.0.0.1:8080/jenkins),添加
JENKINS_ARGS="--prefix=/jenkins"
在 / etc / sysconfig / jenkins 中,然后重新启动Jenkins。
仅供参考,Jenkins的安装是通过Puppet进行的,使用this Puppet module。
答案 4 :(得分:6)
将其放入/etc/apache2/other/jenkins.conf:
ProxyPass /jenkins http://localhost:8009/jenkins
ProxyPassReverse /jenkins http://localhost:8009/jenkins
ProxyRequests Off
<Proxy http://localhost:8009/jenkins*>
Order deny,allow
Allow from 127.0.0.1
</Proxy>
然后执行以下命令:
sudo defaults write /Library/Preferences/org.jenkins-ci httpPort 8009
sudo defaults write /Library/Preferences/org.jenkins-ci prefix /jenkins
sudo launchctl stop org.jenkins-ci
最后一个命令告诉launchd停止正在运行的Jenkins实例。并且会自动启动一个新的,因为launchd已配置为始终保持Jenkins运行。
答案 5 :(得分:6)
这就是我在Debian Wheezy运行Jenkin 1.557
下修复它的方法,通过添加&#34;修改JENKINS_ARGS行 - 前缀= $ PREFIX&#34;
JENKINS_ARGS =&#34; ..... --prefix = $ PREFIX&#34;
答案 6 :(得分:3)
您需要在目录中编辑jenkins配置文件 如: sudo vi / etc / default / jenkins并更改var HTTP_PORT 接下来重启jenkins sudo /etc/init.d/jenkins restart
希望这有用
答案 7 :(得分:1)
我使用CentOS7,将JENKINS_ARGS="--prefix=/jenkins"
添加到/etc/sysconfig/jenkins
并重新启动Jenkins工作。然后,您可以通过ip:8080/jenkins
答案 8 :(得分:0)
我不确定人们是否还在寻找这个,但是当我遇到它时,我想我会在这里发布我的解决方案。
按照here的说明,我可以将Library/Preferences/org.jenkins-ci.plist
中的上下文设置为更优选的地址。该链接具有您可以使用OS X本机安装编辑的所有设置。
答案 9 :(得分:0)
我需要使用rtyler/jenkins模块通过 Puppet 在CentOS盒子上配置Jenkins。查看模块代码可能会建议HTTP_PORT和PREFIX应该是config_hash中的参数,但这对我不起作用。对我有用的是类似下面的Puppet配置:
class { 'jenkins':
config_hash => {
'JENKINS_PORT' => { 'value' => '8085' },
'JENKINS_ARGS' => { 'value' => '--prefix=/jenkins' },
},
}
我能够确认这更新了&#34; / etc / sysconfig / jenkins &#34;的内容。 (我相信这是CentOS / RedHat文件的位置。)
答案 10 :(得分:0)
对于Windows安装,请在<arguments>
标记(jenkins.xml)内添加前缀,然后重新启动服务(Powershell Restart-Service jenkins
)。例如:
<executable>%BASE%\jre\bin\java</executable>
<arguments>-Xrs -Xmx256m -Dhudson.lifecycle=hudson.lifecycle.WindowsServiceLifecycle -jar "%BASE%\jenkins.war" --httpPort=8080 --webroot="%BASE%\war" --prefix=/jenkins</arguments>