如果使用前缀,Jenkins无法访问

我目前遇到的问题,jenkins是不可及的,如果我开始与前缀。 前缀是得到jenkins在myurl.de/jenkins(而不是myurl.de:8101)下可用。

我的configuration文件apache2 /etc/apache2/sites-available/000-default.conf包含:

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

如https://wiki.jenkins-ci.org/display/JENKINS/Running+Jenkins+behind+Apache中所述 。 如果我单独运行Jenkins: java -jar jenkins.war --httpPort=8101一切工作正常,除了调用myurl.de/jenkins只创build一个缺陷的一面,因为上下文path是错误的,例如图像,从错误的位置加载(从myurl.de/image.png代替myurl.de/jenkins/image.png)。

所以就像上面的链接中描述的那样,我已经用java -jar jenkins.war --httpPort=8101 --prefix=/jenkins启动了Jenkins java -jar jenkins.war --httpPort=8101 --prefix=/jenkins 。 不幸的是,它说:

 Running from: /home/dgr/jenkins2/jenkins.war webroot: $user.home/.jenkins Jan 29, 2016 2:25:50 PM winstone.Logger logInternal INFO: Beginning extraction from war file Jan 29, 2016 2:25:50 PM org.eclipse.jetty.util.log.JavaUtilLog info INFO: jetty-winstone-2.9 Jan 29, 2016 2:25:52 PM org.eclipse.jetty.util.log.JavaUtilLog info INFO: NO JSP Support for /jenkins, did not find org.apache.jasper.servlet.JspServlet Jenkins home directory: /home/dgr/.jenkins found at: $user.home/.jenkins 

并且只能从8101和/ jenkins中以404响应。 这是一个已知的错误? 我找不到这种行为的任何其他描述。

当从Docker容器运行Jenkins并设置JENKINS_OPTS --prefix=/jenkins )。 我正在使用最新的Jenkins,它是1.646,也是最新的Docker镜像。 像在https://stackoverflow.com/questions/9089566/jenkins-website-root-path中build议的configuration – > Jenkins URL下设置path的不同解决scheme也不起作用。

代理configuration和上下文path必须匹配。

您引用的文档中的代理configuration示例假定上下文path是默认的/。

您将Jenkins的上下文path更改为/ jenkins。 要通过本地主机访问它,你可以使用URL http://127.0.0.1:8101/jenkins

代理configuration需要更新:

 ProxyPass /jenkins http://localhost:8101/jenkins nocanon ProxyPassReverse /jenkins http://localhost:8101/jenkins