目次 †
はじめに †
2003.06.17時点のApache2はまだまだ実績が少ないため、
Apache1.3.2xとTomcat 4.1.xの連携を基本とする。
連携方法一覧 †
- mod_jkを使用する(AJP12)
- mod_jkを使用する(AJP13)
- mod_jk2を使用する(AJP13)
- Apacheのmod_proxyを使用する
で、 †
もっとも手軽なのはmod_proxyだが、mod_proxyはあくまでおまけ程度のものであり、
本来の用途とは少し異なると(私は)思うので却下。
恐らく一番実績があるのはmod_jk(AJP12)だと思うが、設計が古くパフォーマンスが悪い。
個人的にTomcat4.0.xまではmod_jk(AJP13)を使用していたが、設定が邪魔臭い。
mod_jk2はApache2の(多分)推奨コネクタだが、Apache1.3.xでも使用できる。
特徴は設定が簡単。というか正式なリファレンスが見当たらないためわからない。
でも私の環境では
WindowsXP + Apache 1.3.24 + mod_ssl + OpenSSL + mod_jk2(AJP13) + Tomcat 4.1.24
という組み合わせで動いてる。
したがって、 †
実運用ではmod_jk(AJP13)が主流だと思う。
開発環境は実環境とほぼ同じ状態で設定が簡単なほうが良いためmod_jk2を一押しとする。
mod_jk2の設定など †
教えるのはもったいない。
mod_jk(ajp13)で連携してみる †
しかしまぁ、そんな事言っても結局mod_jkの設定をすることもあるので覚書する。
おおまかな設定の流れは
- Apacheのhttpd.conf に mod_jk.conf のパスを指定してインクルードする。
- mod_jk.conf にて mod_jk.dll のパスを指定する。
- mod_jk.conf にて workers.properties のパスを指定する。
- workers.properties にてコネクタの定義とそのコネクタの使用するポートを設定する。
- mod_jk.conf に /hoge というリクエストがあった場合、X:/Apache Group/Tomcat 4.1/webapps/hoge に行く見たいな設定をする。
- ↑のときに許可するリクエストのパスの種類も設定する。
- ↑のときに使用するコネクタの種類*1も設定する。
- つまるところ、Apache の httpd.conf に mod_jk.conf をインクルードするわけですから逆に httpd.conf に全部設定書いても動くと思いますが、ややこしくなってしまうのでやめましょう。
Apache httpd.conf †
mod_jk.conf †
mod_jk.conf に各種設定を書いていきます。
workers.properties †
ほったらかしです・・・・
ディレクトリのindexを見せなくする †
設定はそれぞれのディレクトリを見せなくするを参照。
- Apache
- Tomcat
連携している場合に発生する問題点 †
mod_jk でApache-Tomcat連携している場合 †
- mod_jk.conf で alias を切っている場合、Apacheの設定でTomcatのディレクトリindexが表示されることがある。*2
- Apacheの設定としてディレクトリのindexを表示しないようにする。
- この設定方法だと、Apacheとしてディレクトリを表示しないことになるのでエラーメッセージの統一ができる。
- mod_jk.conf で すべてのRequestがTOMCATにマウントされているとApacheでのディレクトリインデックスの隠蔽は無駄である。
mod_jk2 でApache-Tomcat連携している場合 †
Apache-Tomcat連携で日本語ファイルのDownload時の文字化けをやっつける †
- Apache-Tomcat連携で日本語ファイルをDownloadするとDownloadダイアログのファイル名が文字化けする。
なぜかというと †
- tomcatで通常responseヘッダーに格納する文字コードは「ISO-8859-1」
- 連携時、Tomcat-JK2.jarに含まれるモジュールでのresponseヘッダーの文字コードの扱いは「UTF-8」になってるらしい。
なので化ける*4
- これに関しては設定などがないので*5ソースを改修して自力でTomcat-JK2.jarを作るしかない。
cvs.apache.org からソースを取得する †
- 設定などはここを見ろ!
- このリポジトリから「jakarta-tomcat-connectors」プロジェクトをcheck out
cvs -d :pserver:anoncvs@cvs.apache.org:/home/cvspublic login
password: anoncvs
cvs -d :pserver:anoncvs@cvs.apache.org:/home/cvspublic checkout [module-name]
※コマンドラインでの check out は↑の通り
- このリポジトリから check out する際、目的の Tomcat のバージョンを指定する。
- 今回はTomcat4.1.24。タグは「TOMCAT_4_1_24」。
tomcat-jk2.jar をbuildする。 †
- 作業環境はWindows2Kpro
- まず、Defaultの状態でbuildできないと話にならないので・・・
buildしてみる。
- ・・・で出来ないと思う。
- Windowsの環境変数に依存していると思われるjarへのクラスパスを通す。*6
- Build関連のファイルに依存していると思われるjarへのパスがあったらフルパスで通す。*7
- このときTOMCATのjarなどにパスを通すことになるが、当然そのtomcatはバージョンを合わせる。
- buildが出来るようになったらソースの修正に入る。*8
org.apache.jk.server.JkCoyoteHandler?#appendHead() を修正する †
修正した Tomcat-jk2.jar を配置する †
- 修正した Tomcat-jk2.jar を %CATALINA_HOME%/server/lib のものと置き換える。*11
- これで Apache-Tomcat連携で日本語ファイルのダウンロード時、ダイアログの表示で日本語が使えます。
Tomcat4.1.24用
その他の情報 †
- 通常のURLでディレクトリでは英文字の大文字小文字を判断しませんが、aliasに関しては大文字小文字が判断されるみたいです。 -- 連携したら必ずひっかかるね? 2003-10-15 (水) 13:33:34
リンク集 †