更改Jenkins basepath

时间:2016-11-02 19:45:12

标签: nginx jenkins proxy reverse-proxy

我试图通过myjenkinsinstance:8080 / jenkins(而不是myjenkinsinstance:8080)来提供股票jenkins安装(在Amazon Linux AMI上),然后用例如Nginx(通过HTTP)。

此问题已被回答'之前,但解决方案似乎不再具有相关性。

@admins我更愿意对该主题发表评论(特别是this'回答'),而不是打开副本,但根据我的声誉,我不被允许#39;得分(因为我的评论根本不是解决方案,而是进一步请求帮助)。

从最接近的事情到我见过的答案:

  
      
  1. 转到Jenkins主目录(我的C:\ Jenkins)
  2.   
  3. 编辑jenkins.xml
  4.   
  5. 将此--prefix=/jenkins添加到参数的末尾,如下所示,然后重新启动jenkins服务,对我来说一切正常!
  6.         

    示例:<arguments>-Xrs-Xmx256mDhudson.lifecycle=hudson.lifecycle.WindowsServiceLifecycle -jar "%BASE%\jenkins.war" --httpPort=8080 --prefix=/jenkins</arguments>

         
        
    1. 打开网址http://localhost:8080/jenkins这应该会显示jenkins的主页
    2.   
  • 没有&#39; jenkins.xml&#39;在$ JENKINS_HOME目录中,但有一个config.xml
  • config.xml
  • 中没有<arguments/>条目
  • 初始安装似乎没有其他配置

还有詹金斯的位置&gt;詹金斯网址&#39;设置&#34;配置系统&#34;设置(myjenkinsinstance / configure),但修改它似乎没有明显的影响。

最终目标是通过例如自动化安装。 CloudFormation(作为EC2&#39的用户数据的一部分)。

任何建议都将不胜感激。

2 个答案:

答案 0 :(得分:0)

在您的Linux系统上,您需要找到位于

的jenkins默认配置文件
  

的/ etc /默认/詹金斯

然后根据您的要求添加以下参数。这是一个粗略的想法。

  

JENKINS_ARGS =&#34; - webroot = / var / cache / jenkins / war --prefix = / jenkins   --httpPort = $ HTTP_PORT --ajp13Port = $ AJP_PORT&#34;

这应该最有可能发挥作用。如果没有,请使用当前存在的参数更新您的答案。这适用于Debian / Ubuntu。

你还在windows机器或linux上运行jenkins吗?

答案 1 :(得分:0)

所以我的“解决方案”是使用sed并在/etc/nginx/nginx.conf和/etc/init.d/jenkins中插入一些行。

e.g。

  • sed -i '/^ location \/ {/aproxy_pass http://127.0.0.1:8080/;' /etc/nginx/nginx.conf
  • sed -i '/^PARAMS=/ s/"$/ --prefix=\/jenkins"/' /etc/init.d/jenkins

我非常怀疑这是一个接近'最佳实践'的东西,但它现在似乎有效(我会用yum更新会发生什么......我不确定,但计划是用一个弹性文件系统,无论如何都希望我们能够考虑jenkins实例的临时性。)