7.2.1 mod_jk の使用

この設定は、Apache mod_jk プラグインを使用して、AJP プロトコルでの JBoss クラスターのロードバランスを取ります。これは、Apache JServ プロトコル (AJP) に対するサポートを提供します。

次の手順を実行して設定を行います。

  1. Apache Tomcat Connector サイトから、ご使用のオペレーティングシステム用の mod_jk プラグインをダウンロードします。
    注意: ご使用の Apache サーバーが、ダウンロードした mod_jk プラグインファイルをサポートしていることを確認してください。
  2. ダウンロードしたファイルの名前を mod_jk.so に変更し、APACHE_HOME/modules/ ディレクトリに保存します。

  3. テキストエディターで、APACHE_HOME/conf にある httpd.conf ファイルを開いて、ファイルの末尾に次の行を追加します。Include conf/mod-jk.conf

  4. 次の内容の新しいファイル APACHE_HOME/conf/mod-jk.conf を作成します。

    # Load mod_jk module 
    # Specify the filename of the mod_jk lib 
    LoadModule jk_module modules/mod_jk.so 
    # Where to find workers.properties 
    JkWorkersFile conf/workers.properties 
    # Where to put jk logs 
    JkLogFile logs/mod_jk.log 
    # Set the jk log level [debug/error/info] 
    JkLogLevel info 
    # Select the log format 
    JkLogStampFormat "[%a %b %d %H:%M:%S %Y]" 
    # JkOptions indicates to send SSK KEY SIZE 
    JkOptions +ForwardKeySize +ForwardURICompat -ForwardDirectories 
    # JkRequestLogFormat 
    JkRequestLogFormat "%w %V %T" 
    # Mount your applications 
    JkMount /* loadbalancer 
    # You can use external file for mount points. 
    # It will be checked for updates each 60 seconds. 
    # The format of the file is: /url=worker 
    # /examples/*=loadbalancer 
    #JkMountFile conf/uriworkermap.properties 
    # Add shared memory. 
    # This directive is present with 1.2.10 and 
    # later versions of mod_jk, and is needed 
    # for load balancing to work properly 
    JkShmFile logs/jk.shm 
    # Add jkstatus for managing run-time data 
    <Location /jkstatus/> 
    JkMount status 
    Order deny,allow 
    Deny from all 
    Allow from 127.0.0.1 
    </Location>
  5. conf/workers.properties に次の内容のファイルを作成します。
    # for mapping requests 
    worker.list=loadbalancer,status 
    # Define Node1 
    # modify the host as your host IP or DNS name. 
    worker.node1.port=8009 
    worker.node1.host=node1.mydomain.com 
    worker.node1.type=ajp13 
    worker.node1.lbfactor=1 
    worker.node1.cachesize=10 
    # Define Node2 
    # modify the host as your host IP or DNS name. 
    worker.node2.port=8009 
    worker.node2.host= node2.mydomain.com 
    worker.node2.type=ajp13 
    worker.node2.lbfactor=1 
    worker.node2.cachesize=10 
    # Load-balancing behavior 
    worker.loadbalancer.type=lb 
    worker.loadbalancer.balance_workers=node1,node2 
    worker.loadbalancer.sticky_session=1 
    #worker.list=loadbalancer 
    # Status worker for managing load balancer 
    worker.status.type=status
  6. このファイルで、次の項目を定義します。
    • クラスターの各ノード(この例では、2 つのノードに node1、node2 という名前が付けられています)

    • ファイル内で定義したすべてのノードを worker.loadbalancer.balance_workers エントリに追加します。

  7. クラスターの各ノードごとに、[appserver root]/server/<profile_name>/deploy/jbossweb.sar にある server.xml ファイルを開き編集します。

  8. server.xml ファイルで Engine name 要素を検索し、jvmRoute 属性を追加します。例えば、node1 というノードでは次のようになります : <Engine name="jboss.web" defaultHost="localhost" jvmRoute="node1">

  9. 編集した server.xml ファイルを保存します。
    注意: jvmRoute の各クラスターノードの値は一意でなければならず、それぞれの JBoss に接続するワーカーの値と一致していなければなりません。