株式会社エスロジカル
株式会社エスロジカル
SSL証明書(3,300円/1年~ DV、OV、EV)、セキュリティ、Web開発、Linux開発、Go言語

Jakarta Tomcat:Apache と Proxyで連動(4系)

技術ドキュメント目次 -> Jakarta Tomcat -> Apache と Proxyで連動(4系)

本技術ドキュメントは、2002~2004年頃に作成したものが多いです。
内容が古くなっていることもあるかと思いますが、ご了承ください。

サイフにやさしいSSL証明書
【低価格SSL証明書】弊社運営の低価格SSL証明書販売サイト、翌月末払いなど請求書払いも可能。


◆ はじめに

Tomcatのバージョン4系には、
ApacheとProxyを介して連動するためのサポートが追加されました。

これにより、
3系で Apacheとの連動を行うために使用していたAJP12等のプロトコル
(mod_jk等により実現)が不要になり、
Apache側に mod_proxy を組み込んでおけば同様の効果が得られるようになりました。

なお、mod_proxy を Apache に組み込むためには、
apache のコンパイル時に、configure のオプションで指定しておく必要があります。

ProxyによるApacheとの連動イメージ

        +--------+  1--->  +--------+  2--->  +--------+
        | Client |         | Apache |         | Tomcat |
        +--------+  <---4  +--------+  <---3  +--------+

        上図の、2. 3. が Proxy接続になります。
        Client からは Tomcat の存在が見えません。


◆ 設定方法

大まかな手順は次のようになります。
mod_jk を使用していたときよりも、簡単になった感を受けました。

1. Tomcat の設定(server.xml)に Proxyの設定を追加。
2. Apache の設定(httpd.conf)に ProxyPassディレクティブの指定を追加。
3. Tomcat と Apacheを再起動。

なお、以下の説明では、
Tomcat に標準に付属するコンテキストである /examples
($CATALINA_HOME/webapps/examples/* のWebアプリケーション)に、
Apache経由でアクセスするための方法を例にとって説明しています。

◆ 1. Tomcat の設定ファイル(server.xml)に Proxyの設定を追加。

server.xml に次の指定を追加します。

server.xml には、<Connector ..../> による設定が他にもあるので、
他の <Connector ..../> タグの下あたりに追加しておけばいいでしょう。

これにより、Tomcat が Apache からのProxyアクセスを受け付けるために、
8081ポートで Listen するようになります。

<Connector className="org.apache.catalina.connector.http.HttpConnector"
           port="8081"
           proxyName="www.gorigori.jp"
           proxyPort="80"/>


なお、上記の proxyName には Apache が稼動するマシンのホスト名、
proxyPort には Apache が Listen しているポート番号(通常 80)を指定してください。

◆ 2. Apache の設定(httpd.conf)に ProxyPassディレクティブの指定を追加。

ProxyPass ディレクティブを使用して、Proxyの設定を追加します。

この設定により、Apacheが /examples* として受け取ったリクエストは、
8081ポートを通じて Tomcat に Proxy されるようになります。

ProxyPass         /examples http://localhost:8081/examples
ProxyPassReverse  /examples http://localhost:8081/examples


◆ 3. Tomcat と Apacheを再起動。

Tomcat と Apache を再起動することで、Apache と Tomcat の連動が実現できます。

http://(Apacheのホスト名)/examples/
にアクセスして、動作を確認してみてください。



■ Jakarta Tomcat についての他のドキュメント


■ 他のグループのドキュメント

Apache  /  Linux  /  FreeBSD  /  OpenSSL  /  Perl  /  HTTPプロトコル  /  Jakarta Tomcat  /  Java  /  NetBSD  /  Oracle  /  PostgreSQL  /  UNIX の C言語  /  UNIX のコマンド  /  Windows  /  bind  /  システム運用TIPS

アンケートにご協力をお願いいたします。

1. このドキュメントへの評価をご選択ください。
         

2. ご感想をお書きください。