2013年6月10日月曜日

ApacheとJBOSSの連携 - その2 - Apache/JBossの設定


前回、「ApacheとJBOSSの連携 - その1 mod_jk.so の入手方法」でmod_jk.soの準備ができたら、ApacheとJBossのセットアップです。

前提条件:



  • ApacheはD:\app\Apache2.2にインストール済み (Versionは2.2.22)
  • JBOSSはD:\app\jboss-5.1.0.GA-jdk6\jboss-5.1.0.GAにインストール済み (Versionは5.1.0GA-jdk6)
  • Apache, JBOSSは同じマシン上にインストールされている(Windows 2008)
  • ApacheとJBOSSはTomcat Connector (mod_jk.so)で連携
  • Apacheと連携させるWeb Application はJBossの管理アプリケーションであるweb-console, admin-console, jmx-console とする

目的:

ユーザーがWeb Application Serverに8080ポートでアクセスしている状態(いわゆる直アクセス)であるところを、Front End HTTPサーバーとしてApacheを立ててWell known Portである80番ポートでアクセスできるようにしてあげる。

図で表すと、こういう状態を
このようにします。


手順:


Apache側のセットアップ 


セットアップの概要はこんな感じ




1. conf/httpd.confを修正


ファイルの最下行に、次のInclude Statement 1行を追加

Include conf/mod_jk.conf

*Apacheに「mod_jkを使うよ、詳しくはconf/mod_jk.confを見てね」と言っている

2. conf/mod_jk.confを作成


メモ帳を開き、次の6行をコピペして、mod_jk.confファイルとして保存、confフォルダの下に置く

LoadModule jk_module modules/mod_jk.so
JkWorkersFile conf/workers.properties
JkLogFile logs/mod_jk.log
JkMount /admin-console/* node1
JkMount /jmx-console/* node1
JkMount /web-console/* node1


ステップ1の[Include]の設定で、Apacheはこのファイルを見に来る。

まず、ここではApacheにロードしてもらいたいmod_jk.soモジュールの場所を伝え[LoadModule]、mod_jk.soモジュールに関するログを出力するファイルの場所を指定している[JkLogFile]。

ユーザーからのHTTPリクエストのURLに/admin-console/、/jmx-console/、/web-console/が入っている場合にnode1 (worker) にリクエストを転送するよう指示している[JkMount]。Apacheはリクエストをnode1に転送すれば良いことは理解できたがnode1は何処か? 転送先情報はまだ知らない。

node1の転送先情報は、[JkWorkersFile] で指定されたconf/workers.propertiesで定義されているので、次にconf/workers.propertiesのファイルを見に行く。

3. conf/workers.propertiesを作成


メモ帳を開き、次の5行をコピペして、workers.propertiesとして保存、confフォルダの下に置く

worker.list=node1
worker.node1.port=8009
worker.node1.host=server1
worker.node1.type=ajp13


ステップ2の[JkWorkersFile]の設定で、Apacheは転送先情報を知るためこのファイルを見に来る。

workers.propertiesファイルでは、node1という名前のWorkerはここで定義されていて[worker.list]、node1のHost名(またはIP)、ポート番号とタイプが定義されている[worker.node1.port], [worker.node1.host], [worker.node1.type]。


4. mod_jk.soをApacheサイトからDownloadしてmodulesフォルダに置く


mod_jk.soのDownload方法は前回の ApacheとJBOSSの連携 - その1 mod_jk.so の入手方法 を参照。



JBOSS側のセットアップ


JBOSS起動用バッチ(run.bat) にbオプションでJBOSSがListenするアドレスを指定(ホスト名もしくはIP)しておく。 (今回は、run.bat -b 0.0.0.0 と設定している、0.0.0.0は、server1上のすべてのNetwork Interface (NIC) のアドレスでJBossはリスエストを受け付けるようになる)

オプション付きでJBossを起動する方法として、過去紹介したように起動用バッチを準備したり、下の例のようにrun.batのショートカットを作成して、プロパティで-bオプションをつけてやる方法がある。




Apache/JBOSSを起動と動作確認


以上の設定が終わったら、Apache/JBOSSを起動する。 下記URLがちゃんと表示されたら設定完了(server1の部分は実際のサーバーホスト名に変更してください)。

http://server1/admin-console/
http://server1/jmx-console/
http://server1/web-console/


最後に:


今回はHTTP(Apache)とWeb Application Server(JBoss)が同じマシンにある場合の設定方法を紹介したが、下図のようにserver1, server2と別々のマシンに別れている場合は、workers.propertiesのnode1.hostを変えてやれば良い。









0 件のコメント:

コメントを投稿