トップ ITインフラ OSとミドルウェア Tomcat 設定方法 Apache/Tomcatのajp連携

Apache/Tomcatのajp連携―httpdのmod_proxy_ajp、プロトコル、設定方法。

Apache(Apache HTTP Server)とTomcat(Apache Tomcat)を連携する場合、Apache Jserv Protocol、略してajpというプロトコルが利用できます。Ajpというプロトコル、httpdのmod_proxy_ajp、ajpを使用したApacheとTomcatを連携させる設定方法についてまとめました。

▲記事トップへ

目次

この記事の目次です。

1. 概要

2. ApacheとTomcatについて

3. Apache/Tomcatのajp連携で使用するajpというプロトコル

4. Apache HTTP Serverの設定(httpdのmod_proxy_ajpの設定)

5. Apache Tomcatの設定(server.xmlのajpの設定)

6. Apache/Tomcatのajp連携の設定の反映方法

7. まとめ

更新履歴

1. 概要

本記事では、はじめにApacheとTomcatとはどのようなものかについて簡単に触れています。 そして、ApacheとTomcatの連携で使用するajpとうプロトコルについても簡単に解説しています。 そのあと、Apache HTTP Serverの設定(httpdのmod_proxy_ajpの設定)、Apache Tomcatの設定(server.xmlのajpの設定)、Apache/Tomcatのajp連携の設定の反映方法というように具体的な設定方法について解説しています。 それぞれ分かりやすくするため簡単に説明しておりますので、最後に補足事項などをまとめています。

2. ApacheとTomcatについて

はじめにApacheとTomcatとはどのようなものかについて簡単に触れます。

Apache

一般的にApacheというとApacheで開発しているソフトウェアの1つのApache HTTP Serverを指すのでApacheと呼んでいます。 HTTPでHTMLファイルなどのWebコンテンツを公開するWebサーバソフトウェアです。 C言語で開発されており、モジュールという言葉がよく耳にします。 追加機能などはmod_proxy_ajp.soのように動的ライブラリとして提供されています。

Tomcat

TomcatもApacheで開発しているソフトウェアの1つでApache Tomcatというソフトウェアです。 TomcatもHTTPでHTMLファイルなどのWebコンテンツを公開するWebサーバ機能があるソフトウェアです。 JSP/ServletなどのJavaのWebアプリケーションを公開するのがメインのソフトウェアで、一般的にはアプリケーションサーバソフトウェアと呼ばれるソフトウェアです。

ApacheとTomcatの連携

TomcatだけでWebサーバ機能があるのでWebコンテンツの公開が行えますが、 Webサーバ機能として多機能なApacheなどのWebサーバソフトウェアと連携する構成でWeb公開することが多いです。 例えば、Apacheは複数のドメインを振り分けたり、プロキシ機能、mod_securityなどのWAF機能を使ったりできます。

ApacheとTomcatを連携する方法は、Apacheが受信したアクセスをhttpのプロキシでTomcatの8080ポートにアクセスを振り分ける方法や httpではなく、ajpというプロトコルを使用して、ApacheとTomcatを連携させる方法などがあります。

この記事では後者のajpというプロトコルを使用してApacheとTomcatを連携させる設定方法について解説しています。

3. Apache/Tomcatのajp連携で使用するajpというプロトコル

ApacheとTomcatの連携で使用するajpとうプロトコルについても簡単に解説します。

ajpとは

ajpとは、Apache Jserv Protocolの略でApache HTTP ServerとApache Tomcatと連携する際に使うプロトコルです。

ajpは、TomcatのajpサーバポートとTCP経由で接続するためのプロトコルです。 クライアントよりApacheが受け付けたリクエストをajpでTomcatのajpサーバプログラムに転送され、TomcatはServletなどの処理結果をApacheにレスポンスし、Apacheがレスポンスをクライアントにレスポンスします。

プロトコルというのは通信時にどのようなデータ構成で送受信するかを決めた規約(プロトコル)のことをいいます。 httpもプロトコルの1つです。httpはhttpのデータ構成で送受信します。

以下ではApacheとTomcatを連携させる具体的な設定方法について見ていきます。

4. Apache HTTP Serverの設定(httpdのmod_proxy_ajpの設定)

ajpモジュール(mod_proxy_ajp)を利用可能にして、VirtualHostの設定でApache Tomcatとajp(プロトコル)で通信して連携する設定を行います。

ajpモジュール(mod_proxy_ajp)の有効化とProxyPassの指定を追加

「Apache HTTP Serverインストールディレクトリ>/conf/httpd.conf」を編集します。

# vi /etc/httpd/conf/httpd.conf

 :
 LoadModule proxy_module modules/mod_proxy.so
 LoadModule proxy_ajp_module modules/mod_proxy_ajp.so
 :
 
<VirtualHost *:80>
 ProxyPass /<コンテキスト名※1,2> ajp://<Tomcatアドレス※3>/<コンテキスト名※1,4>
 </VirtualHost>

5. Apache Tomcatの設定(server.xmlのajpの設定)

配置場所

<Tomcatホームディレクトリ>/conf/server.xml

設定ファイルの例

server.xmlのイメージです。「…」は省略を表しています。

<?xml version='1.0' encoding='utf-8'?>
 <Server …>
  <Service name="Catalina">
    <!--: 省略-->
    <Connector port="<ajpポート番号>"
               protocol="AJP/1.3"
               …
                />
     <Engine …>
       <Host …>

         <Context path="/<コンテキスト名>※"
                  docBase="<Webアプリケーションの置き場所>"
                  reloadable="true" />

       </Host>
     </Engine>
   </Service>
 </Server>

※「/<コンテキスト名>」の部分をコンテキストパスといいます。

6. Apache/Tomcatのajp連携の設定の反映方法

設定反映にはApacheとTomcatを再起動する必要があります。

7. まとめ

本記事では、はじめにApacheとTomcatとはどのようなものかについて簡単に触れています。 そして、ApacheとTomcatの連携で使用するajpとうプロトコルについても簡単に解説しています。 そのあと、Apache HTTP Serverの設定(httpdのmod_proxy_ajpの設定)、Apache Tomcatの設定(server.xmlのajpの設定)、Apache/Tomcatのajp連携の設定の反映方法というように具体的な設定方法について解説しています。

最後に補足事項として起動時の注意点があります。

ApacheとTomcatの起動と通信状態でうまく連携できないとなるかもしれませんので、Tomcatを起動し、Apacheを起動する順番で起動する方がいいです。 Tomcatがajpのポート(デフォルト8009)で受信可能な状態にならないと、Apacheからajpでコネクションしようとしても接続を確立できないです。 ajpでのコネクションが確立できない、あるいは以前のコネクションの破棄が行えていない状態など疎通できない事象が発生するかもしれないからです。

更新履歴

この記事の更新履歴です。

戻る

スポンサーリンク

サイト内のページ

言語
C・C++ /HTML /Java /JavaScript /PHP /シェルスクリプト

開発環境
Ant /Burp /Eclipse /Fiddler /gcc /gdb /Git /g++ /JDK /JMeter /JUnit /Teraterm /ZAP

技術・仕様
Ajax /CORBA /Jakarta EE(旧称J2EE、Java EE) /JNI

ライブラリ/Framework/CMS
bootstrap /jQuery /FuelPHP /Lucene /MyBatis /Seasar2 /Spring /Struts /WordPress

Web API
Google Maps

ITインフラOSとミドルウェア
Linux /Windows /シェル
ActiveMQ /Tomcat /MariaDB /MySQL /Nagios /Redis /Solr

ITインフラサーバー
公開Webサーバー

ITインフラネットワーク
プログラミング /構築

ITインフラセキュリティ
公開サーバーのセキュリティ

PC製品
ZOTAC

SI
ホームページの作り方

その他
IT用語 /ITスキル体系

スポンサーリンク

関連サイト内検索ツール

zealseedsおよび関連サイト内のページが検索できます。

IPアドレス確認ツール

あなたのグローバルIPアドレスは以下です。

3.129.209.84

HTMLの表示色確認ツール

パスワード生成ツール

文字数のプルダウンを選択して、取得ボタンを押すと「a~z、A~Z、0~9」の文字を ランダムに組み合わせた文字列が表示されます。

ここに生成されます。

スポンサーリンク