ApacheとTomcatのAJPプロトコルでの接続設定
目次
概要
Apache単体で構築したWebサーバの場合、原則として静的コンテンツしか表示することができません。 これはApacheで動的なページを生成するためのサーバサイドプログラムを実行することができないためです。 しかしApacheにはPHPやPerl、SSIなどのサーバサイドプログラムを実行するための拡張モジュールが 準備されており、Apacheにこれら拡張モジュールをロードすることで動的なページを生成することが できるようになります。
ただしJava(Servlet/JSP)についてはヒープメモリの管理など複雑な処理が必要となるため、 Apacheの1モジュールとして拡張可能な機能の範囲を超えています。 そこでJavaのプログラムの実行は専用のアプリケーションサーバであるTomcatで処理することとし、 Apacheからは必要なときにTomcatへアクセスを中継します。そしてTomcatが生成した動的コンテンツを Apacheがクライアントへ返します。
今回はTomcatの処理について詳細は割愛し、ApacheからTomcatへアクセスを中継するための Apacheの設定について紹介します。ApacheからTomcatへ接続する際にはAJP(Apache Jserv Protocol)という プロトコルを使用します。
構成
想定環境
サーバ構成
OSバージョン
CentOS release 5.5 (Final) x86_64
パッケージ一覧
Apacheインストール+イントラネット向け設定や
Apacheインストール+SSL証明書作成+SSL設定でApacheを
インストールしていれば、特に追加のパッケージは必要ありません。
今回は以下のパッケージがインストールされている環境で動作確認しています。
apr-1.2.7-11.el5_3.1.x86_64.rpm
postgresql-libs-8.1.18-2.el5_4.1.x86_64.rpm ・・・apr_utilが依存
apr-util-1.2.7-11.el5.x86_64.rpm
httpd-2.2.3-43.el5.centos.x86_64.rpm
~~~~~ここまでインストールされていればTomcatとの連携可能~~~~~
php-common-5.1.6-27.el5.x86_64.rpm ・・・PHPの実行に必要、php-mbstringが依存
php-mbstring-5.1.6-27.el5.x86_64.rpm ・・・PHPの実行に必要
gmp-4.1.4-10.el5.x86_64.rpm ・・・PHPの実行に必要、phpが依存
php-cli-5.1.6-27.el5.x86_64.rpm ・・・PHPの実行に必要、phpが依存
php-5.1.6-27.el5.x86_64.rpm ・・・PHPの実行に必要
distcache-1.4.5-14.1.x86_64.rpm ・・・SSL対応で必要、mod_sslが依存
mod_ssl-2.2.3-43.el5.centos.x86_64.rpm ・・・SSL対応で必要
TomcatはTomcat6インストール+初期設定に 従ってインストールされているものとします。
クライアント構成
OSバージョン
Windows 7 Ultimate 64bit
ソフトウェア一覧
Internet Explorer 8
環境構築
インストール
追加でインストールするものは特にありません。
ApacheからTomcatへリクエストを連携する際にはAJP(Apache Jserv Protocol)という プロトコルを使用します。 CentOS 5.5(RHEL 5.5も同様)ではApache(httpdパッケージ)をインストールすると AJP関連のモジュールも一緒にインストールされます。
設定
AJPの設定は(/etc/httpd/conf.d/proxy_ajp.conf)にまとめられています。 今回は http://ドメイン名/tomcat/ にアクセスするとApacheからTomcatにリクエストを連携します。 Tomcatではまだアプリケーションをデプロイしていないので、デフォルト画面が表示されます。 TomcatはApacheと同じサーバ上で起動しており、AJP用のポートは8009ポートとします。
HTTPサーバの設定
viエディタで設定ファイル(proxy_ajp.conf)を開き、設定を変更します。
# cd /etc/httpd/conf.d/ # vi proxy_ajp.conf
※ファイルの末尾に追加※
ProxyPass /tomcat/ ajp://localhost:8009/
以上で設定が終了しましたのでrcスクリプトを使用してデーモンを再起動します。
# /etc/rc.d/init.d/httpd restart Stutting down httpd: [ OK ] Starting httpd: [ OK ]
設定ファイル
/etc/httpd/conf.d/proxy_ajp.conf
動作テスト
Tomcatと連携した後の画面の表示確認
Webブラウザで http://ドメイン名orサーバのIPアドレス/tomcat/ へアクセスし、 以下のような画面が表示されることを確認する。