某些Jenkins URL没有斜杠且代理服务器失败

时间:2019-06-07 07:19:26

标签: apache url jenkins proxy

Jenkins本身可以正常工作,但是与代理服务器结合使用时,对于特定的URL失败。这些URL没有斜杠,仅当我使用HTTPS代理服务器(Apache)时它们才会失败。在绕过代理服务器访问Jenkins时,没有任何问题。

我有2台服务器。服务器1是代理服务器(Apache),它与外界建立HTTPS连接。服务器2是Jenkins服务器。使用域名访问Jenkins时,它首先通过服务器1,然后将HTTP重定向到HTTPS,然后访问服务器2。在该模型中,由于缺少斜杠,某些URL无法正常工作。使用IP地址直接访问Server 2时,URL没有任何问题。

2 个答案:

答案 0 :(得分:0)

许多人(包括我)都在经历这种情况。这无休止地令人讨厌,但是在jenkins bugtracker上,他们要么说它不存在(不再),要么给出解决方法。 https://issues.jenkins-ci.org/browse/JENKINS-53434

答案 1 :(得分:0)

如果使用反向代理,则必须确保在URL中使用/ jenkins前缀。

您可以在ubuntu上的/ etc / default / jenkins文件中设置它

JENKINS_ARGS="--webroot=/var/cache/$NAME/war --httpPort=8080 --httpListenAddress=127.0.0.1 --prefix=$PREFIX"

这是我在8079上使用https端口的代理配置的截断的apache配置

<VirtualHost *:8079>
AllowEncodedSlashes NoDecode
ProxyRequests Off
<Proxy http://localhost:8080/jenkins*>
    Order deny,allow
    Allow from all
</Proxy>
ProxyPass /jenkins http://127.0.0.1:8080/jenkins nocanon
ProxyPassReverse /jenkins http://127.0.0.1:8080/jenkins
ProxyPassReverse /jenkins https://website.eu:8079/jenkins  
RequestHeader set X-Forwarded-Proto "https" 
ProxyPreserveHost On

然后在https://website.eu:8079/jenkins/config中更新詹金斯网址 https://website.eu:8079/jenkins