Tomcatのサーバ設定

Tomcatの設定ファイル「server.xml」「第7回:Tomcat Webアプリケーションマネージャを使ってみよう!」 では、Tomcat WebアプリケーションマネージャによるWebアプリケーション管理について紹介しました。今回はTomcatの設定ファイルであるServer.xml につい

羽倉 敬

2007年12月14日 20:00

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>の設定が使用されます。カスタマイズが必要な場合は、の子要素に独自の設定を持たせることで、上位の設定を上書きできます。



図1:server.xmlの構造
図1:server.xmlの構造

では、server.xmlで設定できるそれぞれの要素について解説していきます。

<Server>要素

Tomcatサーバコンポーネント定義です。デフォルトでは「」となっており、ポート8005を監視してshutdownコマンドを受け付けるように設定されています。サーバには複数のサービスを関連付けることができます。

<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以外のレルムはコメントアウトされて無効になっています。

人気記事トップ10

人気記事ランキングをもっと見る

企画広告も役立つ情報バッチリ! Sponsored

ClickHouse Cloudが実現した広告運用SaaS「ATOM」のデータ基盤革新、パフォーマンスを向上しながら、運用負荷とコストを削減 11月11日 6:20 AIで開発が加速する時代、品質保証はどう変わる? Tricentisが示すAIエージェント活用の実像 11月9日 6:45 悪用までの猶予が「1分」に迫るフロンティアAI時代に開発と本番を貫く脆弱性管理が必要 10月29日 8:30 欧州CRA対応とSBOM運用。AI生成コードのOSS混入問題の対策とは ――スニペット単位で検出する「FossID」「Insignary Clarity」によるSBOM運用 9月16日 6:40 PostgreSQLからTiDBへ、稼働中SaaSで進める段階的DB移行の実践と再設計への展望 9月7日 6:30 機能安全開発におけるGoogleTestの活用を支援!「Parasoft C/C++test CT」で実現する効率化&AI連携 4月14日 6:30 【CNDW2025】Grafanaが明かす「オブザーバビリティの哲学」ー最小限の労力で実用的なインサイトを得るには 1月23日 6:30 【CNDW2025】プロダクト急増に備える基盤刷新 ーウェルスナビがECSからEKSへの移行で得た知見とは 1月15日 6:30 【CNDW2025】250環境を5人で運用、構築時間は30分に ーKINTOテクノロジーズが語るインフラ基盤組織の作り方 2025年12月18日 6:30 新たな自動化で熱視線! AIエージェントの「推論能力」を支える2つのコンポーネントとは? 2025年11月28日 6:30