在 /jenkins 上使用 apache 运行 Jenkins

在 /jenkins 上使用 apache 运行 Jenkins

/jenkins我需要访问詹金斯服务器。

这是我现在在 Apache 配置中的内容:

ProxyPass /jenkins http://localhost:8080
ProxyPassReverse /jenkins http://localhost:8080

当我访问 时example.com/jenkins
我被重定向到example.com/login?from=%2F
而不是预期的exmaple.com/jenkins/login?from=%2F

那么有可能吗阿帕奇满足我的所有要求詹金斯服务器,采用以下形式example.com/jenkins/*而不是example.com/*

附言:我知道创建一个新的服务器并命名为类似的东西会是一种更好的做法jenkins.example.com,但这对我来说目前不是一个选择。

答案1

在 Jenkins 内部似乎有一个配置 Jenkins URL 的选项:Jenkins 网站根路径

另外,我在 Jenkins Wiki 中找到了 apache 配置文档: 在 Apache 后面运行 Jenkins

编辑

我成功地实现了詹金斯服务器http://example.com/jenkins如下:

  • 在我的本地机器上,通过在文件中添加JENKINS_ARGS变量、属性,然后重新启动 Jenkins 服务。(来源:--prefix=/jenkins/etc/default/jenkins这个答案
  • 在我的 docker 镜像上,通过--prefix=/jenkins在命令末尾添加rundocker run --name Jenkins -p 8080:8080 -p 50000:50000 jenkins --prefix=/jenkins

这是我的阿帕奇配置条目詹金斯

ProxyPass        /jenkins http://localhost:8080/jenkins nocanon
ProxyPassReverse /jenkins http://localhost:8080/jenkins
ProxyRequests    Off
AllowEncodedSlashes NoDecode

来源:在 Apache 后面运行 Jenkins

答案2

我在虚拟 index.html 上测试了这样的设置。

ProxyPass "/jenkins" http://192.168.0.99
ProxyPassReverse "/jenkins" http://192.168.0.99

就像这样,当我打开时,它按预期工作http://example.com/jenkins我被重定向到 index.htmlhttp://192.168.0.99

您应该查看 jenkins 的 htdocs 根目录。如果有类似这样的重定向,<meta http-equiv="refresh" content="0;URL=/login?from=%2F">它将重定向到example.com/login?from=%2F。如果将重定向更改为以 开头的相对路径.,它将正确重定向:

<meta http-equiv="refresh" content="0;URL=./login?from=%2F">

像这样它会正确重定向到example.com/jenkins/login?from=%2F

相关内容