web-dev-qa-db-ja.com

サブドメインプロキシパスはすべて単一サーバーを指します

ポート8080の単一のApacheTomcatでホストされている2つのアプリケーションがあります>

  • _http://mydomain.com:8080/application1_
  • _http://mydomain.com:8080/application2_

次の動作で両方の前にApacheプロキシを実行したいと思います>

  • http://mydomain.com/* (Apache2) -> http://mydomain.com:8080/application1/* (Tomcat)
  • http://subdomain.mydomain.com/* (Apache2) -> http://mydomain.com:8080/application2/* (Tomcat)

私が今得ている最高のものは、異なるIPを持ち、それに応じてドメインとサブドメインをルーティングする2台のマシンです。

理想的には、Apacheプロキシと2つのアプリを同じマシンに配置する必要があります...

キックアスDEVOpsスキルを持っている人は誰でも支援できますか?

12
alwinc

@Jon Linの回答に加えて、アプリがリダイレクトを行う場合に備えて、ProxyPassReverseの使用も検討してください。これにより、Apacheが応答のURLを修正します(詳細 ProxyPassReverse )。次のようになります。

<VirtualHost subdomain.mydomain.com:80>
    ProxyPass / http://localhost:8080/application1/
    ProxyPassReverse / http://localhost:8080/application1/
</VirtualHost>

<VirtualHost mydomain.com:80>
    ProxyPass / http://localhost:8080/application1/
    ProxyPassReverse / http://localhost:8080/application1/
</VirtualHost>

お役に立てば幸いです。

26
Thiago Curvelo

mydomain.com(Apache)の仮想ホスト構成で、

ProxyPassMatch ^/(.*)$ http://mydomain.com:8080/application1/$1

subdomain.mydomain.com(Apache)の仮想ホスト構成では、必要です

ProxyPassMatch ^/(.*)$ http://mydomain.com:8080/application2/$1

両方の構成ファイルは同じマシン上にある必要があり、同じファイルであってもかまいません。これがどのように設定されるかのいくつかの例については、 VirtualHostの例 を参照してください。

2
Jon Lin