home wiki.fukuchiharuki.me
Menu

はじめに

「AJP」での検索がちょこちょこっとあるようなので軽くまとめてみます。

AJPとは

AJPがすること

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

何が嬉しいのか

クライアントがAPサーバにアクセスするとき通常次のようなURIを指定する。

http://localhost:8080/Hoge/

このうち「:8080」がポート番号を指定していて、APサーバは8080番ポートでクライアントからのアクセスを待ち受けていると分かる。

このままサービスを公開するとどうなるか。

  • サーバ側は8080番ポートを開けておかなければならない
  • クライアント側は8080番ポートを指定しなければならない

ではどうしたいか。

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

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

AJPを設定する

設定と反映

結論からまず。次のファイルを書いて、

  • /etc/httpd/conf.d/proxy_ajp.conf
ProxyPass /Hoge/ ajp://localhost:8009/Hoge/

httpdをリスタートする。

# /etc/init.d/httpd restart

動作確認

ブラウザで次のURIにアクセスする。

http://(ドメイン名)/Hoge/

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

エラーになる?

次の原因が考えられる。。

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

参考