Apache(Apache HTTP Server)とTomcat(Apache Tomcat)を連携する場合、Apache Jserv Protocol、略してajpというプロトコルが利用できます。Ajpというプロトコル、httpdのmod_proxy_ajp、ajpを使用した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連携の設定の反映方法
本記事では、はじめにApacheとTomcatとはどのようなものかについて簡単に触れています。 そして、ApacheとTomcatの連携で使用するajpとうプロトコルについても簡単に解説しています。 そのあと、Apache HTTP Serverの設定(httpdのmod_proxy_ajpの設定)、Apache Tomcatの設定(server.xmlのajpの設定)、Apache/Tomcatのajp連携の設定の反映方法というように具体的な設定方法について解説しています。 それぞれ分かりやすくするため簡単に説明しておりますので、最後に補足事項などをまとめています。
はじめにApacheとTomcatとはどのようなものかについて簡単に触れます。
一般的にApacheというとApacheで開発しているソフトウェアの1つのApache HTTP Serverを指すのでApacheと呼んでいます。 HTTPでHTMLファイルなどのWebコンテンツを公開するWebサーバソフトウェアです。 C言語で開発されており、モジュールという言葉がよく耳にします。 追加機能などはmod_proxy_ajp.soのように動的ライブラリとして提供されています。
TomcatもApacheで開発しているソフトウェアの1つでApache Tomcatというソフトウェアです。 TomcatもHTTPでHTMLファイルなどのWebコンテンツを公開するWebサーバ機能があるソフトウェアです。 JSP/ServletなどのJavaのWebアプリケーションを公開するのがメインのソフトウェアで、一般的にはアプリケーションサーバソフトウェアと呼ばれるソフトウェアです。
TomcatだけでWebサーバ機能があるのでWebコンテンツの公開が行えますが、 Webサーバ機能として多機能なApacheなどのWebサーバソフトウェアと連携する構成でWeb公開することが多いです。 例えば、Apacheは複数のドメインを振り分けたり、プロキシ機能、mod_securityなどのWAF機能を使ったりできます。
ApacheとTomcatを連携する方法は、Apacheが受信したアクセスをhttpのプロキシでTomcatの8080ポートにアクセスを振り分ける方法や httpではなく、ajpというプロトコルを使用して、ApacheとTomcatを連携させる方法などがあります。
この記事では後者のajpというプロトコルを使用してApacheとTomcatを連携させる設定方法について解説しています。
ApacheとTomcatの連携で使用する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を連携させる具体的な設定方法について見ていきます。
ajpモジュール(mod_proxy_ajp)を利用可能にして、VirtualHostの設定でApache Tomcatとajp(プロトコル)で通信して連携する設定を行います。
「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>
<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>
※「/<コンテキスト名>」の部分をコンテキストパスといいます。
設定反映にはApacheとTomcatを再起動する必要があります。
本記事では、はじめに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インフラセキュリティ
公開サーバーのセキュリティ
SI
ホームページの作り方
スポンサーリンク
関連サイト内検索ツール
zealseedsおよび関連サイト内のページが検索できます。
IPアドレス確認ツール
あなたのグローバルIPアドレスは以下です。
3.135.212.80
HTMLの表示色確認ツール
パスワード生成ツール
文字数のプルダウンを選択して、取得ボタンを押すと「a~z、A~Z、0~9」の文字を ランダムに組み合わせた文字列が表示されます。
ここに生成されます。
スポンサーリンク
Copyright (C) 2007-2024 zealseeds. All Rights Reserved. Loarding…