2016
05.22
tomcat_httpd_80

JAVAアプリとPHPアプリを共存させる!~Apache tomcat と Apache HTTPDのポート80同居~

構築

3992 Views

Webアプリケーション構築時にtomcatを導入した場合、ポートを80番にするにはポートフォワーディングをする必要があります。ただ、この方法では他の用法でポート80を使えなくなります。この記事では、tomcatにポート80を専有させず、Apache HTTPDと同居させる方法を紹介します(。・ω・。)

JAVAアプリとPHPアプリを共存させる!~Apache tomcat と Apache HTTPDのポート80同居~

1. 現状の課題

「同居できない!」という方は恐らく、tomcat構築時にiptablesに下記レコードを追加しているのではと思います。

# ポート80番に来た通信を全て8080にリダイレクトする
iptables -A PREROUTING -t nat -i eth0 -p tcp --dport 80 -j REDIRECT --to-port 8080

このままではポート80番に届いたWEB通信は漏れなく8080(tomcat)に飛ばされてしまうため、tomcat以外でWEBサイトを立ち上げることが出来ません(ノд・。)では見れるようにするためにはどうしたら。。

2. 実現方法〜特定のディレクトリのみtomcatにリダイレクト〜

tomcat_httpd_80

上記形であれば共存せることが出来ます!言葉で簡単に書くと、

http://sample.com/tomcat/であれば、tomcatに飛ばす
それ以外であれば、Apache HTTPDベースのアプリケーションにする

こうすることで、JAVAのアプリケーションとPHP(HTTPD)のアプリケーションを同居させることが出来ます!常時処理をするのはApache(HTTPD)で、/tomcat/ディレクトリにアクセスした場合のみApache(tomcat)で処理をするというものです(。・ω・。)

3. 設定方法

設定方法は至って簡単で、httpdの設定ファイル「proxy_ajp.conf」にレコードを追加させるだけです(AJP : Apache Java Protocol)。 このファイルが存在しない場合は、新規作成で問題ございません。にApacheの再起動が必要ですので、周知が必要な場合は自前に周知してから計画的に反映させましょう(。・ω・。)

# 設定ファイルを作成・更新する
vim /etc/httpd/conf.d/proxy_ajp.conf
  ▼追加レコード
  ProxyPass /tomcat/ ajp://localhost:8009/tomcat/
  ▲追加レコード

# Apacheの再起動
service httpd restart

これで完了です!設定はこれだけで問題ないのですが・・・あれ・・・

なんで8080じゃなくて8009なんだろう

ということで調べてみたのですが、AJPが利用するポート番号が8009みたいです。ポート番号、なかなか全部を把握するのは大変ですが、キーだけでも抑えていると構築がはかどりますね(ノд・。)

 この記事を読んだ人は、以下の記事も読んでいます

 この記事を読んだ人は、稀に以下の記事も読んでいます

 人気記事らんきんぐ(。・ω・。)

コメント

  1. この記事へのコメントはありません。

  1. この記事へのトラックバックはありません。