13.4.3. Apache HTTPD または Enterprise Web Server HTTPD への Mod_jk モジュールのインストール
前提条件
- このタスクを実行する場合は、Red Hat Enterprise Linux にインストールされた Apache HTTPD または JBoss Enterprise Web Server にインストールされた HTTPD を使用する必要があります。
- Apache HTTPD をインストールする必要がある場合は、http://docs.redhat.com で入手可能な『『Red Hat Enterprise Linux デプロイメントガイド (Red Hat Enterprise Linux Deployment Guide)』』に記載された手順を実行します。
- JBoss Enterprise Web Server をインストールする必要がある場合は、http://docs.redhat.com で入手可能な『『JBoss Enterprise Web Server インストールガイド(JBoss Enterprise Web Server Installation Guide)』』に記載された手順を実行します。
- Apache HTTPD を使用する場合は、Red Hat カスタマーサービスポータル (http://access.redhat.com) で Enterprise Application Platform ネイティブコンポーネントパッケージをダウンロードします。このパッケージには、Red Hat Enterprise Linux 向けにプリコンパイルされた mod_jk および mod_cluster バイナリーが含まれます。JBoss Enterprise Web Server を使用している場合は、すでに mod_jk のバイナリーは含まれます。
- 管理 (root) 権限を使用してログインする必要があります。
手順13.11 タスク
HTTPD 設定の場所を決定します。
HTTPD 設定の場所は、Red Hat Enterprise Linux の Apache HTTPD を使用しているか、JBoss Enterprise Web Platform で利用可能な HTTPD を使用しているかによって異なります。これは以下の 2 つのいずれかのオプションであり、このタスクの残りでは、HTTPD_HOME と呼ばれます。- Apache HTTPD -
/etc/httpd/
- JBoss Enterprise Web Server HTTPD -
EWS_HOME/httpd/
mod_jk モジュールを設定します。
- テキストエディターで
HTTPD_HOME/conf/httpd.conf
を開き、以下の内容をファイルの最後に追加します。# Include mod_jk's specific configuration file Include conf/mod-jk.conf
HTTPD_HOME/etc/httpd/conf/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>
値を見て、セットアップに適切であることを確認します。適切な場合は、ファイルを保存します。JKMountFile ディレクティブの指定
mod-jk.conf
の JKMount ディレクティブに加えて、mod_jk に転送される複数の URL パターンを含むファイルを指定できます。- 以下の内容を
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
- 照合される各 URL パターンに対する行を含む
HTTPD_HOME/conf/uriworkermap.properties
という名前の新しいファイルを作成します。以下の例は、ファイルの構文の例を示しています。# Simple worker configuration file /jmx-console=loadbalancer /jmx-console/*=loadbalancer /web-console=loadbalancer /web-console/*=loadbalancer
HTTPD のモジュールディレクトリーへの mod_jk.so ファイルのコピー
注記
これは、mod_jk.so
が HTTPD のmodules/
ディレクトリーに含まれない場合にのみ必要です。ネイティブコンポーネント ZIP パッケージを抽出します。オペレーティングシステムが 32 ビットであるか、64 ビットであるかに応じて、native/lib/httpd/modules/
またはnative/lib64/httpd/modules/
ディレクトリーにあるmod_jk.so
ファイルを見つけます。このファイルをHTTPD_HOME/modules/
ディレクトリーにコピーします。
mod_jk ワーカーノードを設定します。
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 ワーカーの設定リファレンス」を参照してください。
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 では、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
結果
Apache HTTPD が mod_jk ロードバランサーを使用するよう設定されます。Enterprise Application Platform が mod_jk を認識するよう設定するには、「Enterprise Application Platformが外部 HTTPD から要求を受け入れるように設定」を参照してください。