【概要】
Apache Tomcat は,Jakarta Servlet(旧 Java Servlet)と Jakarta Server Pages(旧 JavaServer Pages, JSP)の実装である。 Apache Tomcat プロジェクトの成果物である。
この資料では,2026年時点で提供されている Apache Tomcat 11.0 系列のインストールとテスト実行を行う。あわせて,Apache HTTP サーバ(2.4 系列)と連携させ,mod_proxy_ajp モジュールによる連携動作までを扱う。
【目次】
【関連する外部ページ】
Java(JDK)を先に用意しておくこと。Tomcat 11.0 系列は Java 17 以降が必要である。この資料では,長期サポート版の Eclipse Temurin 25(LTS)の JDKを用いる(Temurin は Adoptium プロジェクトが提供する OpenJDK のビルド)。
Tomcat インストールディレクトリを決めておくこと。値は自由に決めてよいが,半角文字で,スペースを含まないこと。この資料では,次のように書く。
ブラウザで次のページを開く。左側メニューの「Download」から「Tomcat 11」を選ぶ。
「Binary Distributions」の「Core」の中から,Windows では zip 版(例:apache-tomcat-11.0.x-windows-x64.zip)を選んでダウンロードする。インストーラ形式の Windows Service Installer(32-bit/64-bit exe)を使ってもよい。
ダウンロードした zip を,第1章で決めた C:\tomcat11 に展開する。展開後,C:\tomcat11\bin などのディレクトリができていることを確認する。
Temurin 25 の JDK がインストールされ,環境変数 JAVA_HOME が JDK のインストール先を指していることを確認する。
JAVA_HOME
管理者権限でコマンドプロンプトを起動する (手順:Windowsキーまたはスタートメニュー → cmd と入力 → 右クリック → 「管理者として実行」)。
cmd
C:\tomcat11\bin\startup.bat を実行して Tomcat を起動する。
ブラウザで http://localhost:8080/ を開き,Tomcat のトップページが表示されることを確認する。
お断り
Apache HTTP サーバのインストールについての記述は,別の Web ページに移した。
Apache HTTP サーバ(2.4 系列)のインストールが済んでいること。
Tomcat のインストールとテスト実行が済んでいること。
Apache の httpd.conf ファイルの場所と,Tomcat インストールディレクトリを調べておくこと。この資料では,次のように書く。
XAMPP を使って Apache をインストールした場合には, httpd.conf ファイルの場所は C:\xampp\apache\conf\httpd.conf になるので読み替えること。
httpd.conf に次の2行があるので,行頭の # を外して有効にする。mod_proxy_ajp は mod_proxy に依存するため,両方を読み込む。
#
【変更前】 # LoadModule proxy_module modules/mod_proxy.so # LoadModule proxy_ajp_module modules/mod_proxy_ajp.so 【変更後】 LoadModule proxy_module modules/mod_proxy.so LoadModule proxy_ajp_module modules/mod_proxy_ajp.so
httpd.conf の末尾に,次の1行を書き加える。 これは,Tomcat 連携の設定を httpd.conf に直接書かず, conf/extra/httpd-proxy.conf にまとめて書くための設定である。
Include conf/extra/httpd-proxy.conf
Tomcat 11 では,C:\tomcat11\conf\server.xml の中の AJP コネクタは,あらかじめコメントアウトされて無効になっている。Apache と AJP で連携させるため,このコネクタを有効にする。あわせて,AJP コネクタは secretRequired が既定で true であり,このままでは起動しないため,同一マシン内(loopback)だけで使う前提で secretRequired="false" を指定する(AJP コネクタは既定で loopback アドレスにだけバインドされる)。
secretRequired
true
なお,HTTP コネクタ(ポート 8080)は既定で有効になっている。Apache 経由でのみアクセスさせたい場合は,このコネクタをコメントアウトして無効にしてよい。
【変更前】 <!-- Define an AJP 1.3 Connector on port 8009 --> <!-- <Connector protocol="AJP/1.3" address="::1" port="8009" redirectPort="8443" maxParameterCount="1000" /> --> 【変更後】 <!-- Define an AJP 1.3 Connector on port 8009 --> <Connector protocol="AJP/1.3" address="::1" port="8009" redirectPort="8443" secretRequired="false" maxParameterCount="1000" />
Tomcat に付属のサンプル(examples)を使ってテストする。
Require ip 127.0.0.1 の行は,「127.0.0.1」からのアクセスだけを許すという設定である(Apache 2.4 系列では,旧来の Order / Allow は非推奨であり,Require を使う)。
Require ip 127.0.0.1
Order
Allow
Require
<Location /examples/> ProxyPass ajp://localhost:8009/examples/ Require ip 127.0.0.1 </Location>
C:\tomcat11\bin\shutdown.bat で停止し,C:\tomcat11\bin\startup.bat で起動して,Tomcat を再起動する。
httpd.conf を書き換えたので,再起動が必要である。
「:8080」を付けていないので,Tomcat に直接アクセスするのではなく,Apache HTTP サーバ経由でアクセスしていることになる。
http://localhost/examples/
Web の URL へのアクセスを,Tomcat 側のどのアプリケーションに振り向けるかを,URL ごとに設定できる。ここでは, http://localhost/hello へのアクセスを,Tomcat 側の hello に振り向ける設定を試す(URL と Tomcat 側のサーブレット・クラスとの対応づけは,各 Web アプリケーションの web.xml または注釈で行う設定であり,混同しないこと)。
conf/extra/httpd-proxy.conf を次のように書く。 Require ip 127.0.0.1 の行は,「127.0.0.1」からのアクセスだけを許すという設定である。
<Location /hello/> ProxyPass ajp://localhost:8009/hello/ Require ip 127.0.0.1 </Location>
httpd.conf を書き換えたので,Apache httpd を再起動すること。