几个Jenkins CI和Nexus Maven存储库的Apache反向代理

时间:2012-07-14 03:58:22

标签: apache2 jenkins apache reverse-proxy nexus

我正在尝试使用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将继续工作几周。这要求太多吗?

提前致谢。

1 个答案:

答案 0 :(得分:0)

使用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/