WindowsでApache 2.4.18とTomcat8.0.32を連携させる

WindowsでApacheをフロントエンドとしてTomcatと連携出来るよう設定を行います。

環境

設定する環境は、次の環境で確認しています。

  • Windows7(64bit)
  • Apache 2.4.18
  • Tomcat 8.0.32

Apacheのインストールについては、「WindowsへApache2.4.18をインストールする」にまとめてあります。 また、Tomcatのインストールについては、「WindowsへTomcat8.0.32をインストールする」にまとめてあります。

Apache 2.4.18とTomcat 8.0.32の設定

Tomcatには、HTTPサーバーとしての機能も持っていますがHTTPリクエストはApacheが受け Tomcatで処理された結果をApacheが返すように設定します。

ApacheとTomcatの間は、mod_proxy_ajpモジュールによって受け渡しが行われます。

Apache側の設定(httpd.conf)

Apacheをインストールしたフォルダ配下の「conf」フォルダにあるhttpd.confに記述 されているmod_proxy_ajpモジュールの設定を有効にします。

デフォルトでは、コメントアウトされているので、mod_proxy_ajp.soとmod_proxy.soの コメントアウトを削除します。

LoadModule proxy_module modules/mod_proxy.so
LoadModule proxy_ajp_module modules/mod_proxy_ajp.so

mod_proxy_ajpモジュールの設定ファイルを読み込むよう次の設定を追加します。

Include conf/extra/httpd-proxy-ajp.conf

※ここでは、mod_proxy_ajpモジュールの設定ファイルをApacheのインストールフォルダにある 「conf\extra」フォルダにhttpd-proxy-ajp.confファイルを作成するものとします。

サーブレットへのリクエストがあった場合の設定をhttpd-proxy-ajp.confへ作成します。 例えば、「http://ドメイン名/docs/」へリクエストがあった場合、Tomcat側の「docs」が呼び出されるよう次のように 設定します。

# httpd-proxy-ajp.confの中に記述
<Location /docs/>
  ProxyPass ajp://127.0.0.1:8009/docs/
</Location>

設定に問題がないか、コマンドプロンプトから次のコマンドで確認します。

httpd.exe -t

「Syntax OK」と表示されればApache側の設定は完了となります。

Tomcat側の確認と設定

Tomcatの設定は、デフォルトで問題ないと思いますがajpコネクタの設定が有効になっているか 、ポート番号が8009になっているかを確認します。

Tomcatをインストールしたフォルダにある「conf」フォルダにserver.xmlファイルがあります。 このserver.xmlに次の設定がされているか確認します。

<Connector port="8009" protocol="AJP/1.3" redirectPort="8443" />

Tomcatのデフォルトポート(ポート番号8080)が有効になっているので、次の設定を コメントアウトします。

<!--
<Connector port="8080" protocol="HTTP/1.1"
  connectionTimeout="20000"
  redirectPort="8443" />
-->

以上でTomcatの設定は完了です。

動作確認

TomcatとApacheを起動します。任意のブラウザーを起動し、アドレスに「http://localhost/docs/」と入力します。

次の画面が表示されれば、Apacheの待ち受けポートであるポート番号80からTomcatへ連携出来ていることが 確認できます。

動作確認

ここまでで、ApacheとTomcatの連携設定は完了です。