【问题标题】:Apache reverse proxy for several Jenkins CI and Nexus Maven repositories多个 Jenkins CI 和 Nexus Maven 存储库的 Apache 反向代理
【发布时间】:2012-07-13 22:03:54
【问题描述】:

我正在尝试使用 Apache httpd 为多个 Nexus 和 Jenkins CI 服务器设置前端(反向代理),需要一些帮助。我们有类似的网址-

abc.internal.net:8080/

def.internal.net:9000/jenkins/

ghi.internal.net:8080/jenkins/

jkl.internal.net:8081/nexus/

foo.internal.net/nexus/

我希望每个都设置在 FE 反向代理后面,以便有类似的东西-

scm.internal.net/abc-jenkins/

scm.internal.net/def-jenkins/

scm.internal.net/ghi-jenkins/

scm.internal.net/jkl-nexus/

scm.internal.net/foo-nexus/

一些服务使用根上下文。这些是否可以强制进入任意网络上下文?

我对 Apache httpd 的了解非常有限,所以一些真实的配置会很有帮助。这些服务中的大多数都需要在响应中修复 URL、内容和 CSS。如果可以在不更改这些服务正在运行的服务器上的现有 Web 上下文的情况下完成此操作,那就太棒了。

此外,我需要对这些更改进行软着陆,以便随着开发人员和自动化过渡到新方案,旧 URL 可以继续工作几周。这是不是要求太多了?

提前致谢。

【问题讨论】:

    标签: apache2 jenkins apache reverse-proxy nexus


    【解决方案1】:

    使用ProxyPassMatch,可以试试:

    ProxyPassMatch /([^-]+)-(.*)$ http://$1.internal.net:9000/$2
    

    但这仅说明不是以 root 身份运行并且在端口 9000 上运行的那些。由于 root 和端口似乎完全是任意的,您可能只需要逐一列举:

    ProxyPass /abc-jenkins/ http://abc.internal.net:8080/
    ProxyPassReverse /abc-jenkins/ http://abc.internal.net:8080/
    
    ProxyPass /def-jenkins/ http://def.internal.net:9000/jenkins/
    ProxyPassReverse /def-jenkins/ http://def.internal.net:9000/jenkins/
    
    ProxyPass /ghi-jenkins/ http://ghi.internal.net:8080/jenkins/
    ProxyPassReverse /ghi-jenkins/ http://ghi.internal.net:8080/jenkins/
    
    ProxyPass /jkl-nexus/ http://jkl.internal.net:8081/nexus/
    ProxyPassReverse /jkl-nexus/ http://jkl.internal.net:8081/nexus/
    

    等等

    【讨论】:

      猜你喜欢
      • 2018-01-12
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2018-02-19
      • 1970-01-01
      • 2015-06-06
      相关资源
      最近更新 更多