/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
在命令末尾添加run
:docker 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
答案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