LinuxでTomcatとApacheの連携
ApacheとTomcatを連携させるためのモジュールをインストールします。
- Apache Tomcat Connector(src)のダウンロード
- ビルド&インストール
- propertiesファイルの設定
- server.xmlの設定
- mod_jkのApache2用設定ファイルの作成
- httpd.confの設定
- Tomcat、Apacheの起動
jk2を使っていましたが、mod_jkのほうが品質がよい(Tomcat 質問集)とのことなので、Apache Tomcat Connectorを使います。
JKはApache HTTPd ServerやMicrosoft IIS、Sun Web ServeなどのWebサーバにも対応しています。
1.Apache Tomcat Connector(src)のダウンロード
The Apache Tomcat Connectorサイトからダウンロードするかwgetで直接入手。
サイトからダウンロードする場合は以下のリンクから。
TomcatのサイトからもDLできます。
# wget http://www.apache.org/dist/tomcat/tomcat-connectors/jk/source/jk-1.2.26/tomcat-connectors-1.2.26-src.tar.gz
2.ビルド&インストール
# tar zxvf tomcat-connectors-1.2.26-src.tar.gz # cd cd tomcat-connectors-1.2.26-src/native # ./configure --with-apxs=/usr/sbin/apxs # make # make install
3.propertiesファイルの設定
インストールした先のconfディレクトリ以下にworkers.propertiesファイルがあります。これはTomcatプロセスのホストやポートを設定するためのテンプレートなので、Tomcatのconf以下にコピーして自分の環境にあわせて設定する必要がある。
propertiesファイルのコピー
# cp ../conf/workers.properties /usr/local/tomcat/5.525/conf/
workers.propertiesを編集
デフォルトの設定だと使えないので、最低限以下の箇所は環境に合わせて修正。
--tomcatインストールディレクトリの指定 workers.tomcat_home=/usr/local/tomcat/5.525 --Javaインストールディレクトリの指定 workers.java_home==/usr/java/jdk1.6.0_03 --jvm_libの設定 # Windowsで使用する場合は以下を有効にする #worker.inprocess.jvm_lib=$(workers.java_home)$(ps)jre$(ps)bin$(ps)classic$(ps)jvm.dll # UnixやLinuxで使用する場合は以下を有効にする worker.inprocess.jvm_lib=$(workers.java_home)$(ps)jre$(ps)lib$(ps)i386$(ps)classic$(ps)libjvm.so
4.server.xmlの設定
Tomcatの設定ファイル(server.xml)を開き、以下のブロックをコメントアウトする
<!-- <Connector port="8080" maxHttpHeaderSize="8192" maxThreads="150" minSpareThreads="25" maxSpareThreads="75" enableLookups="false" redirectPort="8443" acceptCount="100" connectionTimeout="20000" disableUploadTimeout="true" /> <!-- Note : To disable connection timeouts, set connectionTimeout value -->
5.mod_jkのApache2用設定ファイルの作成
mod_jk.xxxファイルは環境に合わせたhttpサーバと連携するための設定ファイルです。今回はApacheを使うので、Apacheの設定ファイルディレクトリにmod-jk.confを作成する。
#vi /etc/httpd/conf.d/mod-jk.conf --mod-jk.confの内容はこんな感じで # Load mod_jk module LoadModule jk_module modules/mod_jk.so ←インストールしたモジュールを指定 # Where to find workers.properties JkWorkersFile /usr/local/tomcat/5.525/conf/workers.properties ←Tomcatプロパティファイルを指定 # Where to put jk logs JkLogFile /var/log/httpd/mod_jk.log ←connecterログ出力先 # Set the jk log level [debug/error/info] JkLogLevel info ←ログレベルを指定 # Select the log format JkLogStampFormat "[%a %b %d %H:%M:%S %Y] " ←ログファイルのタイムスタンプフォーマット # JkOptions indicate to send SSL KEY SIZE, JkOptions +ForwardKeySize +ForwardURICompat -ForwardDirectories # JkRequestLogFormat set the request format JkRequestLogFormat "%w %V %T" # Send JSPs for context / to worker named ajp13 #.jspはTomcatで処理 JkMount /*.jsp ajp13 #/servlet-examples/以下(Tomcat付属のサンプルアプリ)はTomcatで処理 JkMount /servlets-examples/* ajp13 #全てのリクエストをTomcatで処理する #JkMount /* ajp13
6.httpd.confの設定
httpd.confの最終行に次の一行を追加
Include conf.d/mod-jk.conf
httpd.confの文法チェック
$ apachectl configtest (もしくは -t オプション) Syntax OK
7.Tomcat、Apacheの起動
Tomcatの起動、Apacheの起動の順にそれぞれサービスを立ち上げます。
$ /etc/rc.d/init.d/tomcat start $ /etc/rc.d/init.d/httpd start
サービスがそれぞれ立ち上がったらhttp://localhost/servlets-examples/などにアクセスし、アプリケーションが動くことを確認できればOK。