1

Apache httpd を使用して複数の Nexus および Jenkins CI サーバーのフロントエンド (リバース プロキシ) をセットアップしようとしていますが、助けが必要です。次のような URL があります-

abc.internal.net:8080/

def.internal.net:9000/ジェンキンス/

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/

一部のサービスはルート コンテキストを使用します。これらを任意の Web コンテキストに強制することはできますか?

私は Apache httpd の知識が非常に限られているため、実際の構成が非常に役立ちます。これらのサービスのほとんどは、応答で URL、コンテンツ、および CSS を修正する必要があります。これらのサービスが実行されているサーバー上の既存の Web コンテキストを変更せずにこれを行うことができれば、それはすばらしいことです。

また、開発者と自動化が新しいスキームに移行する間、レガシー URL が数週間機能し続けるように、これらの変更にソフト ランディングする必要があります。これは求めすぎですか?

前もって感謝します。

4

1 に答える 1

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/

于 2012-08-21T05:39:52.713 に答える