Tomcat Configuration
Tomcat の Web アプリケーション標準構成と共有ファイルの配置場所
- Tomcat の Web アプリケーション標準構成
-
Tomcat の標準の Web アプリケーション構成は下図のようになっています。
-
index.jsp, sample.js, style.css など:
Web アプリケーションのビューを構成するファイルは Web アプリケーションディレクトリの直下に 配置します。ユーザからの HTTP リクエストはこれらのファイルに対して行われることになります。 -
WEB-INF/web.xml:
Web アプリケーション配置記述ファイル。個々の Web アプリケーションに関する設定などを記述する。 -
WEB-INF/classes/ 以下:
Web アプリケーションで利用する Java クラスファイル群。 パッケージなどを利用している場合はパッケージの階層構造に従う必要がある。 -
WEB-INF/lib/以下:
Web アプリケーションで利用する jar ファイル群。
-
index.jsp, sample.js, style.css など:
- Tomcat 共有ファイルの配置場所
-
WEB-INF/lib は個々の Web アプリケーションが利用するライブラリファイルを配置する場所ですが、
アプリケーションサーバ (Tomcat) のライブラリファイルを配置する場所も存在します。
-
$TOMCAT_HOME/common/lib/以下:
Web アプリケーションおよび Tomcat の内部コードが利用する jar ファイルの配置場所。 JDBC コネクタなどはこの場所に配置するとよい (Tomcat も JDBCRealm などで利用するため)。 -
$TOMCAT_HOME/shared/lib/以下:
Web アプリケーションのみが利用する jar ファイルの配置場所。
-
$TOMCAT_HOME/common/lib/以下:
server.xml について
Tomcat の設定は $TOMCAT_HOME(Tomcat をインストールしたディレクトリ)/conf/server.xml で行ないます。
server.xml では、Tomcat で利用するポート番号の指定やデータベースの設定など、
Web アプリケーションサーバとしてのホストの設定を記述します。
server.xml で設定するのは主に以下の要素です。(いくつかの要素に関してはもう少し詳しく説明します。)
-
ホスト:
Tomcat のホストに関する設定。直観的には Apache HTTP サーバの VirtualHost の設定と似ている。 -
リソース:
Tomcat が利用するデータベースなどのリソースに関する設定。 -
コンテキスト:
個々の Web アプリケーションに関する設定
Host タグ
Host タグはアプリケーションサーバのホスト設定を記述します。 Host タグで利用する主要な属性は以下の通りです。
Context タグ
Context タグは個々の Web アプリケーションに関する設定を記述します。 Context タグで利用する主な属性は以下の通りです。
ちょっと便利な Context の記述法
- Web アプリケーションへのアクセスを制限したい場合
- Web アプリケーションへのアクセスを IP アドレスやドメインによって制限したい場合には、 Valve (バルブ) を使って次のように記述します。
IP アドレスで制限する場合:
<Context path="/path" docBase="webapp" >
< Valve className="org.apache.catalina.valves.RemoteAddrValve"
allow="127.0.0.1" >
</Context>
上記のように記述することで、127.0.0.1 (localhost)からのアクセスのみ受け付けるようになる。 特定の IP を拒否したい場合は deny を用いる。
ホスト名で制限する場合:
<Context path="/path" docBase="webapp" >
< Valve className="org.apache.catalina.valves.RemoteHostValve"
allow=".domain.com" >
</Context>
上記のように記述することで、ホスト名に ".domain.com" を含むホストからのアクセスのみを受け付けるようになる。
特定のホストを拒否したい場合は deny を用いる。
どちらも allow, deny の属性には正規表現を用いることができる。
プライベートネットワークの全てのマシンからのみ、アクセスを受け付ける場合は以下のように記述する。
<Context path="/path" docBase="webapp" >
< Valve className="org.apache.catalina.valves.RemoteAddrValve">
allow="127.0.0.1" >
</Context>
- Web アプリケーション毎にログを分ける
- Host が利用するログと個々の Web アプリケーションのログを区別したい場合には、 Logger を用いることで Web アプリケーション毎のログを作成できます。
<Context path="/path" docBase="webapp" >
<Logger className="org.apache.catalina.catalina.Logger.FileLogger"
prefix="my_log" suffix=".log" timestamp="true"
verbosity="0" directory="logs/myapp">
</Context>
上記の記述をすることで、以下のようなログファイルを作成できます。
- ファイルの接頭辞が"my_log"
- ファイルの接尾辞が".log"
- ファイル名に"年-月-日"が存在
- ログレベルが "0"(debug="0" と同じレベル)
- ログファイルは $TOMCAT_HOME/logs/myapp 以下に保存
by Nobuyuki Kaneko


