web-dev-qa-db-ja.com

同じURLでApacheとTomcatの両方を構成するにはどうすればよいですか?

パブリックIPアドレスでサーバーを指す登録済みURLmywebsite.comがあるとします。

TomcatとApacheの両方を実行してページを提供したい(つまり、Apacheの静的ページとjspなどのTomcatの動的ページ)。

簡単にするために、Apacheが80でリッスンし、Tomcatが8080でリッスンしていると仮定します。

mod_proxyについて聞いた。 mywebsite.comにApacheに移動し、mywebsite/loggedinにtomcatに移動するように要求することは可能ですか?はいの場合、これをどのように構成する必要がありますか?ありがとう。

2

mod_jk--を使用することをお勧めします。これは、mod_proxyよりも具体的で、デバッグが容易な傾向があります。コンテキストを転送できます。つまり、Tomcatでwebapp1webapp2を実行していて、Apacheでimagesディレクトリがある場合、これは機能します。

<VirtualHost *:80>
    ...
    JKMount /webapp1/* ajp13
    JKMount /webapp2/* ajp13
    Alias /images "/some/local/dir"
</VirtualHost>

これも構成がはるかに簡単で、ほとんどのディストリビューションには、ネイティブパッケージマネージャーにすでにパッケージがあります。お役に立てれば!

3
Andrew M.

mod_proxyはTomcatでうまく機能します。 mod_proxyを介してTomcatにプロキシする方法は2つあります。

  1. http-したがって、Tomcatはhttpサーバーとして実行され、ApacheはHTTP経由でTomcatと通信します。
  2. mod_proxy_ajp-これはajpプロトコルを使用します(mod_jkでも使用されます)。この場合、Apacheはパフォーマンスが向上したバイナリプロトコルを介してTomcatと通信します。

mod_proxy_ajpは、ダウンロードしてコンパイルする必要があるmod_jkと比較して、Apacheに付属するパッケージです。ただし、mod_jkは通常、最初に新機能を取得し、より多くのオプションがあります。セットアップが複雑でない場合は... mod_proxy_ajpが最適です。この場合、Tomcatでは、AJPコネクタを持つようにTomcatを設定する必要があります。また、server.xmlにhttpコネクタは必要ありません。 Apacheの場合、ディレクティブは次のように簡単です。

 ProxyPass/loggedin ajp://127.0.0.2:8009/logsedin 

Ajpの例を含むプロキシドキュメントは次のとおりです: http://httpd.Apache.org/docs/2.2/mod/mod_proxy.html

1
Tim Funk