ApacheとTomcatとの連携設定

mod_proxy_ajp向けの設定ですが、tomcat-connectors(mod_jk)を使ってた頃に比べ、簡単に行なえます。

  • httpd-proxy.confの作成
  • httpd.confの設定変更
  • server.xmlの設定変更

またtomcat-connectors(mod_jk)で設定していた workers.properties の設定は不要になりました。

httpd-proxy.confファイルは自動では作成されないので、手動で作成します。以下の例は、/servlets-examples/以下のファイルもしくはディレクトリにアクセスした場合は、ajpというプロトコルを使用して、8009番ポートでTomcatへリクエストへ送ります。

# cat /usr/local/apache2/conf/extra/httpd-proxy.conf
<Location /servlets-examples/>
  ProxyPass ajp://localhost:8009/servlets-examples/
</Location>

上記の設定ファイルをIncludeするように httpd.conf に以下を追記します。

# for tomcat-connector by mod_proxy_ajp
Include conf/extra/httpd-proxy.conf

念のため、 $TOMCAT_HOME/conf/server.xml に以下のようなAJPプロトコル、8009番ポートでコネクションの待ち受けが定義されていることを確認して下さい。*1

    <!-- Define an AJP 1.3 Connector on port 8009 -->
    <Connector port="8009"
               enableLookups="false" redirectPort="8443" protocol="AJP/1.3" />

※注意※
$TOMCAT_HOME は、Tomcatをインストールしたディレクトリになります。

また今の設定のままでは、Tomcatのデフォルトのポート8080へアクセスできてしまうので、それができないようにしておきます。

# diff -b /usr/local/tomcat/conf/server.xml /usr/local/tomcat/conf/server.xml.orig
77c77
<     <!-- Connector port="8080" maxHttpHeaderSize="8192"
---
>     <Connector port="8080" maxHttpHeaderSize="8192"
80c80
<                connectionTimeout="20000" disableUploadTimeout="true" / -->
---
>                connectionTimeout="20000" disableUploadTimeout="true" />

TomcatApacheの順で起動します。

# /etc/init.d/tomcat start
Starting tomcat: Using CATALINA_BASE:   /usr/local/tomcat
Using CATALINA_HOME:   /usr/local/tomcat
Using CATALINA_TMPDIR: /usr/local/tomcat/temp
Using JRE_HOME:       /usr/local/java

# /etc/init.d/apache2 start

動作確認

以下の内容について確認します。

*1:デフォルトでポート番号は、 8009番ですが、自由に変更可能です。変更する際には、httpd-proxy.confとserver.xmlと両方忘れないようして下さい