16.6.3. Apache HTTPD または JBoss Enterprise Web Server HTTPD への Mod_jk モジュールのインストール

要件

  • このタスクを実行するには、サポートされる環境にインストールされた Apache HTTPD を使用するか、JBoss Enterprise Web Server にインストールされた HTTPD を使用する必要があります。JBoss Enterprise Web Server にインストールされた HTTPD は JBoss Enterprise Application Platform ディストリビューションの一部であることに注意してください。
  • Apache HTTPD をインストールする必要がある場合は、https://access.redhat.com/site/documentation/ で入手可能な 『Red Hat Enterprise Linux デプロイメントガイド (Red Hat Enterprise Linux Deployment Guide)』 に記載された手順を実行します。
  • JBoss Enterprise Web Server をインストールする必要がある場合は、https://access.redhat.com/site/documentation/ で入手可能な 『JBoss Enterprise Web Server インストールガイド (JBoss Enterprise Web Server Installation Guide)』 に記載された手順を実行します。
  • Apache HTTPD を使用する場合は、ご使用のプラットフォーム向けの JBoss Enterprise Application Platform ネイティブコンポーネントパッケージを Red Hat カスタマーサービスポータル (https://access.redhat.com) よりダウンロードします。このパッケージには、Red Hat Enterprise Linux 向けにプリコンパイルされた mod_jk および mod_cluster バイナリーが含まれます。JBoss Enterprise Web Server を使用している場合は、すでに mod_jk のバイナリーは含まれます。
  • 管理 (root) 権限を使用してログインする必要があります。

手順16.9 mod_jk モジュールのインストール

  1. HTTPD 設定の場所を決定します。

    HTTPD 設定の場所は、Red Hat Enterprise Linux の Apache HTTPD を使用しているか、JBoss Enterprise Web Server で利用可能な HTTPD を使用しているかによって異なります。以下の場所 1 つで、これ以降のタスクでは、HTTPD_HOME と呼ばれます。
    • Apache HTTPD - /etc/httpd/
    • RHEL 上の JBoss Enterprise Web Server HTTPD - EWS_HOME/httpd
    • Solaris 上の JBoss Enterprise Web Server HTTPD - EWS_HOME/etc/httpd
    • Windows 上の JBoss Enterprise Web Server HTTPD - EWS_HOME/etc/httpd
  2. mod_jk モジュールを設定します。

    1. HTTPD_HOME/conf.d/mod-jk.conf という名前の新しいファイルを作成し、以下の内容をそのファイルに追加します。

      注記

      JkMount ディレクティブは、Apache が mod_jk モジュールに転送する必要がある URL を指定します。ディレクティブの設定に基づいて、mod_jk は、受け取った URL を正しい Servlet コンテナーに転送します。
      静的なコンテンツを直接提供し、Java アプリケーションにのみロードバランサーを使用するには、URL パスが /application/* である必要があります。mod_jk をロードバランサーとして使用するには、値 /* を使用してすべての URL を mod_jk に転送します。
      # 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
      # The default setting only sends Java application data to mod_jk.
      # Use the commented-out line to send all URLs through mod_jk.
      # JkMount /* loadbalancer
      JkMount /application/* loadbalancer
      
      # Add shared memory.
      # This directive is present with 1.2.10 and
      # later versions of mod_jk, and is needed for
      # for load balancing to work properly
      JkShmFile logs/jk.shm 
      
      # Add jkstatus for managing runtime data
      <Location /jkstatus/>
      JkMount status
      Order deny,allow
      Deny from all
      Allow from 127.0.0.1
      </Location>
      
      
      値を見て、セットアップに適切であることを確認します。適切な場合は、ファイルを保存します。
    2. JKMountFile ディレクティブの指定

      mod-jk.conf の JKMount ディレクティブに加えて、mod_jk に転送される複数の URL パターンを含むファイルを指定できます。
      1. 以下の内容を HTTPD_HOME/conf/mod-jk.conf ファイルに追加します。
        # 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
        
      2. 照合される各 URL パターンに対する行を含む HTTPD_HOME/conf/uriworkermap.properties という名前の新しいファイルを作成します。以下の例は、ファイルの構文の例を示しています。
        # Simple worker configuration file
        /*=loadbalancer
        
    3. HTTPD のモジュールディレクトリーへの mod_jk.so ファイルのコピー

      注記

      これは HTTPD の modules/ ディレクトリに mod_jk.so がない場合のみ必要となります。JBoss Enterprise Application Platform 6 のダウンロードとして含まれている Apache HTTPD サーバーを使用している場合はこの手順を省略できます。
      Native Web Server Connectors ZIP パッケージを展開します。オペレーティングシステムが 32 ビットの場合は EAP_HOME/modules/native/lib/httpd/modules/ ディレクトリ、64 ビットの場合は EAP_HOME/modules/native/lib64/httpd/modules/ ディレクトリにある mod_jk.so ファイルを見つけます。
      このファイルを HTTPD_HOME/modules/ ディレクトリーにコピーします。
  3. mod_jk ワーカーノードを設定します。

    1. HTTPD_HOME/conf/workers.properties という名前の新しいファイルを作成します。以下の例を土台として使用し、ニーズに応じてファイルを変更します。
      # Define list of workers that will be used
      # 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.ping_mode=A
      worker.node1.lbfactor=1 
      
      # 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.ping_mode=A
      worker.node2.lbfactor=1
      
      # Load-balancing behavior
      worker.loadbalancer.type=lb
      worker.loadbalancer.balance_workers=node1,node2
      worker.loadbalancer.sticky_session=1
      
      # Status worker for managing load balancer
      worker.status.type=status
      
      workers.properties ファイルの構文と高度な設定オプションの詳細については、「Apache Mod_jk ワーカーの設定リファレンス」を参照してください。
  4. HTTPD を再起動します。

    HTTPD の再起動方法は、Red Hat Enterprise Linux の Apache HTTPD を使用しているか、JBoss Enterprise Web Server に含まれる HTTPD を使用しているかによって異なります。以下の 2 つのいずれかの方法を選択します。
    • Red Hat Enterprise Linux の Apache HTTPD

      以下のコマンドを発行します。
      [root@host]# service httpd restart
    • JBoss Enterprise Web Server HTTPD

      JBoss Enterprise Web Server は、Red Hat Enterprise Linux と Microsoft Windows Server の両方で実行されます。HTTPD の再起動方法はそれぞれ異なります。
      • Red Hat Enterprise Linux

        Red Hat Enterprise Linux では、JBoss Enterprise Web Server は HTTPD をサービスとしてインストールします。HTTPD を再起動するには、以下の 2 つのコマンドを発行します。
        [root@host ~]# service httpd stop
        [root@host ~]# service httpd start
        
      • Microsoft Windows Server

        コマンドプロンプトで以下のコマンドを管理権限で発行します。
        C:\> net stop httpd
        C:\> net start httpd
        
      • Solaris

        コマンドプロンプトで以下のコマンドを管理権限で発行します。
        /opt/jboss-ews-2.0/sbin/apachectl restart
        
結果

Apache HTTPD が mod_jk ロードバランサーを使用するよう設定されます。JBoss Enterprise Application Platform が mod_jk を認識するよう設定するには、「外部 HTTPD からの要求を受け入れるように JBoss Enterprise Application Platform を設定」を参照してください。