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にリダイレクト〜
上記形であれば共存せることが出来ます!言葉で簡単に書くと、
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みたいです。ポート番号、なかなか全部を把握するのは大変ですが、キーだけでも抑えていると構築がはかどりますね(ノд・。)
PHP関連記事
PHPのその他記事もまとめてますので、是非お立ち寄りください(。・ω・。)
この記事へのコメントはありません。