Tomcatのサーバ設定
Tomcatの設定ファイル「server.xml」
「第7回:Tomcat Webアプリケーションマネージャを使ってみよう!」 では、Tomcat WebアプリケーションマネージャによるWebアプリケーション管理について紹介しました。今回はTomcatの設定ファイルであるServer.xml について解説します。また、同様の設定をWebブラウザから行える管理ツールTomcat Administration Toolについて紹介します。
server.xmlによるTomcatの基本設定
CATALINA_HOME/conf/server.xmlは、Tomcatのメインの設定ファイルであり、Tomcat起動時に読み込まれま す。CATALINA_HOME/conf/ディレクトリにはデフォルトのserver.xmlの他に、最小限の設定だけが書かれたテンプレートserver-minimal.xmlが用意されています。新規にサーバの設定を書き起こす場合はserver-minimal.xmlをリネームして用いるのが便利です。
server.xmlの構造
Tomcatはいくつかのコンポーネントで構成されており、server.xmlではXMLの要素を通じて各コンポーネントを定義しています。server.xmlの要素は図1のようなツリー構造をもっています。
上位の属性は、自動的に下位の要素に継承されます。例えば、<Host>の子要素<Logger>の属性に何も指定しない場合、<Engine>の子要素の<Logger>の設定が使用されます。カスタマイズが必要な場合は、
では、server.xmlで設定できるそれぞれの要素について解説していきます。
<Server>要素
Tomcatサーバコンポーネント定義です。デフォルトでは「
<Service>要素
サービスコンポーネントを定義しています。サービスは後述するエンジンとそれに繋がるすべてのコネクタをグループ化したものです。デフォルトでは「<service name=""Catalina">」となっています。
name属性で「Catalina」という名前でサービスが定義されており、エラーログや管理ツールはこの名前でサービスを識別します。1つのサーバに複数のサービスを定義する場合、異なるname属性をつける必要があります。
サービスにはエンジンと1つ以上のコネクタを関連付けることができます。サービスとエンジンの関係は1:1です。サービスコンポーネントを定義しています。サービスは後述するエンジンとそれに繋がるすべてのコネクタをグループ化したものです。デフォルトでは「<service>」
<Engine>要素
エンジンはサーブレットコンテナのインスタンスをあらわし、コネクタから送られてくるリクエストを処理します。デフォルトでは「<Engine name="Catalina" defaultHost="localhost">」となっています。
name属性はエンジンの名前をあらわし、エラーログや管理ツールはこの名前でエンジンを識別します。defaultHost属性はserver.xmlに定義されていないホストにリクエストがあった場合の送り先となる仮想ホストを指定します。エンジンには1つ以上のホストが関連付けられます。
<Connector>要素
リクエストをエンジンに渡す役割をするのがコネクタです。サービスは1つ以上のコネクタを持つ必要があります。
ユーザはHTTPやHTTPS/SSLなどさまざまな手段でエンジンにリクエストを送ります。これらの接続要件への対処はコネクタコンポーネントに任されます。各プロトコルに対応した複数のコネクタを持つことで、どのような接続でリクエストが送られてきてもエンジンが同様に処理し、レスポンスをコネクタに任せることができます。
Tomcatにはいくつかの標準コネクタが搭載されています。デフォルトではHTTP 1.1コネクタとAJPコネクタが有効(コメントアウトされていない状態)になっています。
<DefaultContext>要素
すべてのコンテキスト共通の定義です。デフォルトでは設定されていません。
<Realm>要素
レルムはセキュリティのためのロール名とユーザ名、パスワードのマッピングを外部のデータソースから取り出す仕組みです。TomcatはUserDataBase、Memory、JDBC、JNDIなどいくつかのレルムを持っています。
各レルムの違いはどこから情報を取り出すかの違いでしかありません。デフォルトではUserDataBase以外のレルムはコメントアウトされて無効になっています。