Geek-Side

このエントリーをはてなブックマークに追加  

2004.09.09

TcomcatとApacheとの連携

TomcatはWEBサーバーとして動作する事も可能ですが、Apacheと比べた場合
  • Apacheの方が細かな設定ができる事
  • Apacheは世界中で使用され、頑強である事
  • 静的なページの実行速度はApacheの方が高速である事
等からApacheと連携して使用する事が推奨されています。

mod_jk2のインストール

TomcatとApacheを連携するために mod_jk2 をインストールします。
TomcatとApacheを連携させると、例えば
http://192.168.1.1:8080/sample/sample.jsp と指定していたものを、
http://192.168.1.1/sample/sample.jsp と,ポート番号の入力を省略した形でアクセスできます。

mod_jk2は
emerge -s mod_jk2
としても存在しませんでした。
mod_jk2のebuildは、以下のサイトで公開されていました。
http://bugs.gentoo.org/show_bug.cgi?id=18353
このページの
Created an attachment (id=28339)
と記述の書いてあるリンクからファイルをダウンロードします。
ダウンロードしたファイルを解凍します。
$  tar -xvjpf /root/mod_jk2.tbz2

正規のPortageツリーとは別の、個人的なPortageツリーを作成し、ここでmod_jk2を管理します。
正規のPortageツリー(/usr/portage)以下に追加しても、emerge sync すると削除されてしまうからです。
そこで、今回のmod_jk2を/usr/local/portage にて管理します。
具体的には、まず /etc/make.conf に以下を追加します。

PORTDIR_OVERLAY="/usr/local/portage"
ebuildを格納するフォルダを作成します。
$ mkdir -p /usr/local/portage/net-www/
このフォルダに、解凍したファイルを置きます。
2004/08/14現在では、このebuild(mod_jk2.ebuild)に修正が必要でした。
"net-www/tomcat"と記述のある部分を "www-servers/tomcat" と直します。
mod_jk2をインストールします。Apache2.0系を使用している場合は、例のように
USE="apache2" と指定します。
$ USE="apache2" emerge mod_jk2

mod_jk2の設定

mod_jk2の設定では、/etc/apache/conf/workers2.propertiesを設定します。
Tcomcatのインストールと基本設定で作成したsample.jspをApacheと
連携して動作させるように設定します。
#mod_jk2 のログ設定
[logger.file:0]
level=ERROR
file=${serverRoot}/logs/mod_jk2.log

#共有メモリの設定
[shm]
file=${serverRoot}/logs/shm.file
size=1048576

# Example socket channel, override port and host.
[channel.socket:localhost:8009]
port=8009
host=127.0.0.1

# define the worker
[ajp13:localhost:8009]
channel=channel.socket:localhost:8009

# Uri mapping
[uri:⁄sampledir⁄*]
worker=ajp13:localhost:8009

# define the worker
[status:status]

#jk2ステータス(確認用)の設定
# Uri mapping
[uri:/jkstatus⁄*]
worker=status:status

[logger.file:0]
file ログの出力先を設定
level ロギングするエラーレベルを"EMERG,ERROR,INFO,DEBUG"から指定します。

[uri:/jkstatus⁄*]
worker=status:status
これを含めることにより、http://localhost/jkstatusでjk2の現在の状態が確認できます。
セキュリティのためにコメントアウトしておくか,アクセス制限をかけるようにしましょう。

[shm:]
共有メモリの設定です。Multiprocessサーバを使う場合に指定します。
使用しない場合は "disabled=1" 利用する場合は、size=バイトで指定します。

[channel.socket:]
Tomcatとの通信チャンネル設定です。
通常は上記の例[channel.soket:localhost:8009]を指定します。

[uri:⁄sampledir⁄*]
worker=ajp13:localhost:8009
TomcatのWebアプリケーション割り当てます。上記の例では
sampledir ディレクトリ以下のファイルが割り当てられています。

インストール完了後、Apacheの起動オプションを編集し、Apache を再起動します。
/etc/conf.d/apache2を編集し、起動オプションに "-D JK2"を追加します。
APACHE2_OPTS="-D JK2"
ApacheとTomcatを再起動します。
/etc/init.d/apache2 restart
/etc/init.d/tomcat restart
http://192.168.1.1/sample/sample.jspにブラウザからアクセスし、動作確認をしてみてください。
Apacheと連携したsampleアプリケーション実行結果
Apacheと連携した場合のsampleアプリケーション実行結果

Java SDKのインストール

Gentoo LinuxにはデフォルトではBlackdown の JDK/JREがインストールされます。
Sun の JDK/JRE方が高速だそうなので、SunのJDK/JREをインストールします。
$ emerge -uv sun-jdk
とすると、Sunのサイトからダウンロードするようにメッセージが表示されます。
そこに表示されるURLよりLinux用のファイルをダウンロードします。
ダウンロードしたファイルを /usr/portage/distfiles におき、再度 emerge します。

このエントリーをはてなブックマークに追加   ツイート