2012-07-14 80 views
1

我正在嘗試使用Apache httpd爲幾個Nexus和Jenkins CI服務器設置一個前端(反向代理)並需要一些幫助。我們喜歡 -幾個Jenkins CI和Nexus Maven庫的Apache反向代理

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-詹金斯/

scm.internal.net/ghi-jenkins/

scm.internal.net/jkl-nexus/

scm.internal.net/foo-nexus/

某些服務使用根上下文。這些可以強制進入任意的Web環境嗎?

我對Apache httpd的知識非常有限,所以一些真正的配置將非常有幫助。大多數這些服務需要在響應中修復URL,內容和CSS。如果這可以在不改變這些服務正在運行的服務器上的現有web上下文的情況下完成,那就太棒了。

另外,我需要軟着陸這些變化使傳統的URL繼續爲幾周時間裏,開發商和自動化過渡到新的計劃工作。這是要求太多嗎?

在此先感謝。

回答

0

使用ProxyPassMatch,你可以嘗試:

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

但由於根和端口似乎完全是任意的,只有佔還不如根和端口9000上運行的,你可能就需要通過每一個以列舉:

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/