【问题标题】:Some of Jenkins URLs don't have trailing slash and fail with proxy server一些 Jenkins URL 没有尾部斜杠并且代理服务器失败
【发布时间】:2019-10-22 16:29:51
【问题描述】:

Jenkins 本身工作正常,但与代理服务器一起使用特定 URL 时会失败。这些 URL 没有尾部斜杠,并且仅当我使用 HTTPS 代理服务器 (Apache) 时它们才会失败。绕过代理服务器访问Jenkins时,没有任何问题。

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

【问题讨论】:

    标签: apache url jenkins proxy


    【解决方案1】:

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

    【讨论】:

      【解决方案2】:

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

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

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

      这是我截断的 apache 配置,其中包含 8079 上 https 端口的代理配置

      <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 更新jenkins url https://website.eu:8079/jenkins

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 2014-05-10
        • 1970-01-01
        • 2017-02-28
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2011-07-24
        相关资源
        最近更新 更多