詹金斯网站的根路径

时间:2012-02-01 01:35:19

标签: jenkins

我正在尝试按照此处的说明操作: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 /而不是/?

11 个答案:

答案 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)

  1. 将前缀属性添加到/ etc / default / jenkins文件中:

    JENKINS_ARGS =“ - webroot = / var / cache / jenkins / war - prefix = / jenkins --httpPort = $ HTTP_PORT --ajp13Port = $ AJP_PORT

  2. 配置您的网络服务器(例如 - 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>