Jakarta Tomcat:Apache と Proxyで連動(4系)
技術ドキュメント目次 -> Jakarta Tomcat -> Apache と Proxyで連動(4系)本技術ドキュメントは、2002~2004年頃に作成したものが多いです。
内容が古くなっていることもあるかと思いますが、ご了承ください。
【低価格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 についての他のドキュメント
- インストール(3.2.4)
- インストール(4.0.4)
- Apache と Proxyで連動(4系)
- バージョンごとのサポートAPI
- 使用するポート(3.2.4を前提に)
■ 他のグループのドキュメント
Apache / Linux / FreeBSD / OpenSSL / Perl / HTTPプロトコル / Jakarta Tomcat / Java / NetBSD / Oracle / PostgreSQL / UNIX の C言語 / UNIX のコマンド / Windows / bind / システム運用TIPS