24.7. Apache mod_jk HTTP コネクター
Apache mod_jk は、互換性の維持を目的に提供される HTTP コネクターです。
JBoss EAP は Apache HTTP プロキシサーバーからのワークロードを許可します。プロキシサーバーは Web フロントエンドからのクライアントリクエストを許可し、ワークを参加する JBoss EAP サーバーへ渡します。スティッキーセッションが有効な場合、同じクライアントリクエストは常に同じ JBoss EAP サーバーに送信されます (同じサーバーが使用できない場合を除く)。
mod_jk は AJP 1.3 プロトコルを介して通信します。mod_cluster または mod_proxy には他のプロトコルを使用できます。詳細は「HTTP コネクターの概要」を参照してください。
mod_cluster は mod_jk よりも高度なロードバランサーで、推奨される HTTP コネクターです。mod_cluster は mod_jk のすべての機能と、それ以外の追加機能を提供します。JBoss EAP の mod_cluster HTTP コネクターとは違い、Apache mod_jk HTTP コネクターはサーバーまたはサーバーグループのデプロイメントの状態を認識せず、ワークの送信先に順応できません。
詳細は、Apache mod_jk ドキュメントを参照してください。
24.7.1. Apache HTTP Server での mod_jk の設定
JBoss Core Services Apache HTTP Server のインストール時または JBoss Web Server の使用時に mod_jk モジュールである mod_jk.so
はすでに含まれていますが、デフォルトではロードされません。
JBoss Web Server バージョン 3.1.0 より、Apache HTTP Server は配布されないようになりました。
以下の手順に従って、Apache HTTP Server の mod_jk をロードおよび設定します。この手順では、Apache HTTP Server の httpd/
ディレクトリーがカレントディレクトリーであることを前提としていますが、このディレクトリーはプラットフォームによって異なります。ご使用のプラットフォームに対応するインストール手順は、JBoss Core Services の『Apache HTTP Server Installation Guide』を参照してください。
Red Hat のお客様は Red Hat カスタマーポータルにある Load Balancer Configuration Tool を使用して mod_jk やその他のコネクターに最適な設定テンプレートを迅速に生成することもできます。このツールを使用するにはログインする必要があります。
mod_jk モジュールを設定します。
注記mod_jk 設定ファイルの例は
conf.d/mod_jk.conf.sample
にあります。独自のファイルを作成せずにこのファイルを使用するには、.sample
拡張子を削除し、必要に応じて内容を変更します。conf.d/mod_jk.conf
という新しいファイルを作成します。以下の設定をファイルに追加し、必要に応じて内容を変更します。Copy to Clipboard Copied! Toggle word wrap Toggle overflow Load mod_jk module Specify the filename of the mod_jk lib Where to find workers.properties Where to put jk logs Set the jk log level [debug/error/info] Select the log format JkOptions indicates to send SSK KEY SIZE JkRequestLogFormat Mount your applications 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 Add jkstatus for managing runtime data
# 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.d/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 /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 Require ip 127.0.0.1 </Location>
注記JkMount ディレクティブは、Apache HTTP Server が mod_jk モジュールに転送する必要がある URL を指定します。ディレクティブの設定に基づき、mod_jk は受信した URL を適切なワーカーに送信します。直接静的コンテンツに対応し、Java アプリケーションのロードバランサーのみを使用するには、URL パスは
/application/*
である必要があります。mod_jk をロードバランサーとして使用するには、値/*
を使用してすべての URL を mod_jk に転送します。一般的な mod_jk の設定の他に、このファイルは
mod_jk.so
モジュールをロードするよう指定し、workers.properties
ファイルの場所を定義します。mod_jk ワーカーノードを設定します。
注記ワーカー設定ファイルの例は
conf.d/workers.properties.sample
にあります。独自のファイルを作成せずにこのファイルを使用するには、.sample
拡張子を削除し、必要に応じて内容を変更します。conf.d/workers.properties
という新しいファイルを作成します。以下の設定をファイルに追加し、必要に応じて内容を変更します。Copy to Clipboard Copied! Toggle word wrap Toggle overflow Define list of workers that will be used for mapping requests Define Node1 modify the host as your host IP or DNS name. Define Node2 modify the host as your host IP or DNS name. Load-balancing behavior Status worker for managing load balancer
# 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
mod_jk
workers.properties
ファイルの構文の詳細およびその他の高度な設定オプションの詳細は、「mod_jk ワーカープロパティー」を参照してください。任意で JKMountFile ディレクティブを指定します。
mod-jk.conf
の JKMount ディレクティブの他に、mod_jk に転送される複数の URL パターンが含まれるファイルを指定できます。uriworkermap.properties
ファイルを作成します。注記URI ワーカーマップ設定ファイルの例は
conf.d/uriworkermap.properties.sample
にあります。独自のファイルを作成せずにこのファイルを使用するには、.sample
拡張子を削除し、必要に応じて内容を変更します。conf.d/uriworkermap.properties
という新しいファイルを作成します。以下の例のように、一致する各 URL パターンの行を追加します。Copy to Clipboard Copied! Toggle word wrap Toggle overflow Simple worker configuration file
# Simple worker configuration file /*=loadbalancer
uriworkermap.properties
ファイルを示すよう、設定を更新します。conf.d/mod_jk.conf
の最後に以下を追加します。Copy to Clipboard Copied! Toggle word wrap Toggle overflow 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
# 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.d/uriworkermap.properties
mod_jk の設定に関する詳細は、 JBoss Web Server『HTTP Connectors and Load Balancing Guide』の「Configuring Apache HTTP Server to Load mod_jk」を参照してください。
24.7.2. JBoss EAP が mod_jk と通信するよう設定
JBoss EAP の undertow
サブシステムは、外部 Web サーバーからのリクエストを許可し、外部 Web サーバーへ返答を返送するために、リスナーを指定する必要があります。mod_jk は AJP プロトコルを使用するため、AJP リスナーを設定する必要があります。
デフォルトの高可用性設定の 1 つ (ha または full-ha) を使用している場合は、AJP リスナーはすでに設定されています。
手順は「外部 Web サーバーからのリクエストの許可」を参照してください。