💻
Tomcatとはなんぞや
Apache Tomcat Server
なんぞやシリーズ第2弾。前回WebサーバのApacheを学習しました。
次にAPサーバの学習としてTomcatを選択した。現場で扱うミドルウェアなので抑えておきたい。インフラ学習、案外楽しい
1. Tomcatの基本
Tomcatとは?
- Java Servlet や JSP を実行するためのアプリケーションサーバー(APサーバー)
- 静的コンテンツ(HTML、画像など)も配信可能で、Webサーバー機能も備えている
- オープンソースソフトウェアであり、Javaで開発されている
- レストランに例えると「コック」のような存在
→ ブラウザからの注文(リクエスト)を受けて、動的にページを生成して返す
2. 主要な構成要素と用語
サーブレット(Servlet)
- Javaで書かれた、Webサーバー上で動作するプログラム
- HTTPリクエストを受け取り、レスポンスを生成する役割
サーブレットコンテナ(Webコンテナ)
- サーブレットを動かす実行環境
- Tomcatはこのサーブレットコンテナの代表例
→ サーブレットのライフサイクル管理、マルチスレッド処理、リクエスト/レスポンス処理などを担当
JSP(JavaServer Pages)
- HTML内にJavaコードを埋め込んだページテンプレート
- サーバー側でコンパイルされてサーブレットに変換され、Webページとして動的に生成される
アプリケーションサーバー(APサーバー)
- Webアプリケーションの実行環境
- TomcatはServlet/JSP に特化した軽量なAPサーバー
- DB接続やトランザクション処理などはAPサーバーの役割
↓おそらくこんなイメージ↓
※DBサーバとWebブラウザは別途学習
他言語との比較
- PHPで構築されたWebアプリ:Apache HTTP Server + PHP-FPM の構成が主流
- RubyやPython:Rails、Djangoなどが同様の役割を担う
- TomcatはJavaベースのWebアプリに特化
3. パッケージングと設定ファイル
.jar
)
JARファイル(- Javaアプリケーションをまとめたパッケージ
- 主にデスクトップアプリやライブラリとして使用
.war
)
WARファイル(- Webアプリケーション用のパッケージ形式
- TomcatのようなWebコンテナ上で展開・実行される
JARとWARは、Javaアプリケーションの配布を容易にするフォーマット
4. Tomcatの設定ファイル
server.xml
- Tomcat全体の設定を定義するファイル
- 所在地:
[TOMCAT_HOME]/conf/server.xml
主な設定内容:
- ポート番号(HTTP/HTTPS)
- コンテキストパス(Webアプリのルート)
- バーチャルホスト定義 など
web.xml
- Webアプリ固有の設定を定義
- 所在地:各Webアプリの
WEB-INF/web.xml
主な役割:
- リクエストURLとサーブレット/JSPのマッピング
- 初期化パラメータなどの構成情報
XML(Extensible Markup Language)
-
server.xml
やweb.xml
は、XML形式で記述される - データ構造の定義や、コンピュータ間の情報交換を容易にする汎用マークアップ言語
5. Tomcatと他製品の比較
JBoss(現:Red Hat JBoss EAP)
- Tomcatよりも高機能でエンタープライズ向け
- Jakarta EE(旧 Java EE)全仕様をサポート
- Tomcatは軽量かつ高速、JBossは機能リッチで本格的な業務利用向け
参考文献
Discussion