%CATALINA_HOME%¥conf¥server.xmlファイルは、Tomcatサーバーが利用するソケット(コネクション)や
バーチャルホスト又はホスト名別に管理するアプリケーションの配備ディレクトリを指定したり、
Tomcatサーバーのアクセスログを指定する等Tomcatの動作を決めるための最も重要な主設定ファイルです。
尚、本書で利用した環境は、以下となります。
※.全体構成を分かり易くするためにServerタグ配下に定義するListenerタグ及びGlobalNamingResourcesタグ等は割愛しています。
Tomcat8.5.16をインストールした直後のデフォルトのserver.xmlファイルからコメント行を取り除いたのが以下になります。
server.xml
<?xml version="1.0" encoding="UTF-8"?>
<Server port="8005" shutdown="SHUTDOWN">
<Listener className="org.apache.catalina.startup.VersionLoggerListener" />
<Listener className="org.apache.catalina.core.AprLifecycleListener" SSLEngine="on" />
<Listener className="org.apache.catalina.core.JreMemoryLeakPreventionListener" />
<Listener className="org.apache.catalina.mbeans.GlobalResourcesLifecycleListener" >
<Listener className="org.apache.catalina.core.ThreadLocalLeakPreventionListener" >
<GlobalNamingResources>
<Resource name="UserDatabase" auth="Container"
type="org.apache.catalina.UserDatabase"
description="User database that can be updated and saved"
factory="org.apache.catalina.users.MemoryUserDatabaseFactory"
pathname="conf/tomcat-users.xml" />
</GlobalNamingResources>
<Service name="Catalina">
<Connector port="8080" protocol="HTTP/1.1"
connectionTimeout="20000"
redirectPort="8443" />
<Connector port="8009" protocol="AJP/1.3" redirectPort="8443" />
<Engine name="Catalina" defaultHost="localhost">
<Realm className="org.apache.catalina.realm.LockOutRealm">
<Realm className="org.apache.catalina.realm.UserDatabaseRealm"
resourceName="UserDatabase"/>
</Realm>
<Host name="localhost" appBase="webapps"
unpackWARs="true" autoDeploy="true">
<Valve className="org.apache.catalina.valves.AccessLogValve" directory="logs"
prefix="localhost_access_log" suffix=".txt"
pattern="%h %l %u %t "%r" %s %b" />
</Host>
</Engine>
</Service>
</Server>
server.xmlについてタグ要素の詳細説明の前に、デフォルトの状態から要点となる設定箇所について説明します。
Tomcatのserver.xmlのデフォルト値を利用すると以下のポート番号が利用されます。
ポート番号 | デフォルト状態 | 説明 |
---|---|---|
8080 | 有効 | HTTP通信のためのポート番号 Webサーバーと連携しない単体の場合には、 Webブラウザから「http://localhost:8080」と指定することでアクセスできます。 |
8443 | コメントアウト(無効) | HTTPS通信のため |
8009 | 有効 | AJPプロトコルのためのポート番号 AJPは、ApacheHttpServerとTCP/IP通信をするために最適化されたプロトコルです。 ApacheHttpServerとTomcatとの連携箇所は別頁にて詳しく説明します。 |
8005 | 有効 | Tomcat停止[ShutDown]用 ※.TCP/IPプロトコルから8005にアクセスし、「SHUTDOWN」文字列を送るととTomcatは停止します。 |
ポート番号は、OSがソケット通信から通信データを受け取るプログラムを識別するためにのに0~65535の中から一意に付与できます。
Tomcatのサービスを起動した場合上記8080,8443,8009,8005はTomcat専用のためのポート番号となり、
他のサービスがそのポート番号をサービスとして利用できない事を意味します。
server.xmlからHostタグ部抜粋
<Host name="localhost" appBase="webapps"
unpackWARs="true" autoDeploy="true">
<Valve className="org.apache.catalina.valves.AccessLogValve" directory="logs"
prefix="localhost_access_log" suffix=".txt"
pattern="%h %l %u %t "%r" %s %b" />
</Host>
Hostタグは、仮想ホスト(バーチャルホスト)別にHostタグを明示します。デフォルトでは、localhostの1つが定義されています。
HostタグのappBase属性は、仮想ホスト別に管理するWebアプリケーションを配備するディレクトリを指定しています。
appBase属性は、絶対パスと%CATALINA_BASE%からの相対パス形式で指定します。
デフォルト値では、webappsが指定されておりC:¥developer¥webap¥Tomcat¥tomcat_8.5.16¥webappsを意味します。
※.本サイトのTomcat-インストール(Windows)利用時。
Webアプリケーションのサーブレットのサンプルを作成して、webappsディレクトリに配備した理由になります。
Hostタグの子要素としてValueタグが設定されています。
Valueタグは、各種設定として用いられる柔軟性の高いタグですが、ここではアクセスログの設定に利用しています。
Hostタグで指定された仮想ホストに対するHttp通信のアクセスログをValueタグで指定したファイル名、出力先、フォーマットで出力します。
Tomcatの主設定ファイルであるserver.xmlはサーバーの運用実績に応じて変更がかかり易い設定ファイルの1つです。
運用時には以下の点を留意して運用します。