Menu

*はじめに [#g03d8278]
「AJP」での検索がちょこちょこっとあるようなので軽くまとめてみます。

*AJPとは [#cbfcd354]
**AJPがすること [#s33e4ba6]
AJP(Apache JServ Protocol)はクライアントがApacheを中継してAPサーバ(Tomcat)にアクセスすることを実現する。

**何が嬉しいのか [#h12fc206]
クライアントがAPサーバにアクセスするとき通常次のようなURIを指定する。
 http://localhost:8080/Hoge/
このうち「:8080」がポート番号を指定していて、
APサーバは8080番ポートでクライアントからのアクセスを待ち受けていると分かる。
このうち「:8080」がポート番号を指定していて、APサーバは8080番ポートでクライアントからのアクセスを待ち受けていると分かる。

このままサービスを公開するとどうなるか。
-サーバ側は8080番ポートを開けておかなければならない
-クライアント側は8080番ポートを指定しなければならない

ではどうしたいか。
-サーバ側は80番ポートのみを開けておく
-クライアント側はポート番号を指定しない(80番ポートでのアクセス)

これを実現するのがAJPである(と僕は理解しています。)

*AJPを設定する [#pf801faf]
**設定と反映 [#z937613a]
結論からまず。次のファイルを書いて、
-/etc/httpd/conf.d/proxy_ajp.conf

 ProxyPass /Hoge/ ajp://localhost:8009/Hoge/

httpdをリスタートする。
 # /etc/init.d/httpd restart

**動作確認 [#h0d25008]
ブラウザで次のURIにアクセスする。
 http://(ドメイン名)/Hoge/

ドメイン名の箇所はローカルでテストしているのであればlocalhost、
インターネット上に公開しているのであればサーバに割当たっているIPアドレス
またはIPアドレスに紐づけているドメイン名を指定する。
ドメイン名の箇所はローカルでテストしているのであればlocalhost、インターネット上に公開しているのであればサーバに割当たっているIPアドレスまたはIPアドレスに紐づけているドメイン名を指定する。

*エラーになる? [#g8d7ea90]
次の原因が考えられる。。
-設定ファイルの記述を間違えている
--スラッシュ(「/」)の位置とか
-サーバがローカルで通信できていない
--localhostがIPv6設定だとダメだとか
-TomcatのAJP設定をしていない
--デフォルトでAJPを開けているが
-バージョンが違っていてそもそもこうではない
--Apache2.2とTomcat5.5

*参考 [#ia946e7e]
-http://www.oklab.org/apache_tomcat.xhtml
-http://suto3.mo-blog.jp/nashita/2007/12/fedora_core_6_a_b6f2.html