Linux で Apache 2.2、mod_cluster 1.1、および JBoss EAP 6.0.1 (JBoss 7) を実行しています。
jboss-web.xml で仮想ホストを設定せずに、JBoss で仮想ホストを設定しようとしています。目標は、http://my.example.com/が apache/mod_cluster を介してルーティングし、コンテキスト ルート / で実行されているアプリケーションを提供することです。アプリケーションはスタンドアロン モードで正常に動作します。
Apache の構成:
LoadModule slotmem_module modules/mod_slotmem.so
LoadModule proxy_cluster_module modules/mod_proxy_cluster.so
LoadModule advertise_module modules/mod_advertise.so
LoadModule manager_module modules/mod_manager.so
Listen 192.168.1.2:6666
<VirtualHost 192.168.1.2:6666>
ManagerBalancerName mycluster
ServerAdvertise On
CreateBalancers 0
... other content snipped ...
</VirtualHost>
<VirtualHost *:80>
ServerAdmin my@email.address
ProxyPass / balancer://mycluster stickysession=JSESSIONID|jsessionid nofailover=On
ProxyPassReverse / balancer://mycluster
ProxyPreserveHost On
ServerName my.example.com
</VirtualHost>
アプリケーションには、jboss-web.xml の次のコンテンツがあります。
<?xml version="1.0" encoding="ISO-8859-1"?>
<jboss-web>
<context-root>/</context-root>
</jboss-web>
アプリケーションがデプロイされるサーバーで使用されるプロファイルは、次のように構成されます。
<virtual-server name="default-host" enable-welcome-root="false" default-web-module="my-app-name">
<alias name="my.example.com"/>
</virtual-server>
そして、my-app-name.war という名前の war ファイルを持つアプリがあります。(default-web-module を提供して、または提供せずにこれを試しましたが、同じ結果が得られました)
アプリケーション サーバーで jboss を起動すると、問題なくアプリケーションが起動するように見えます。
[Server:MyApp] 12:17:34,786 INFO [org.jboss.web] (MSC service thread 1-3)
JBAS018210: Registering web context:
[Server:MyApp] 12:17:34,811 INFO [org.jboss.as.server] (Controller Boot Thread)
JBAS018559: Deployed "my-app-name.war"
[Server:MyApp] 12:17:34,823 INFO [org.jboss.as] (Controller Boot Thread) JBAS015874:
JBoss EAP 6.0.1.GA (AS 7.1.3.Final-redhat-4) started in 35274ms - Started 502 of 649
services (146 services are passive or on-demand)
[Host Controller] 12:17:34,829 INFO [org.jboss.as.host.controller] (proxy-threads -
1) JBAS010919: Registering server MyApp
http://my.example.comにアクセスしようとすると、Apache エラーが発生します。
proxy: CLUSTER: (balancer://mycluster). All workers are in error state
Web サーバーの /mod_cluster-manager を調べると、/ のコンテキスト ルートが定義されていません。ただし、別のプロファイルを使用している同じクラスター内の別のアプリによって定義されたコンテキスト ルートが表示されます。
context: 1 [/OtherApp] vhost: 1 node: 3 status: 1
context: 2 [/OtherApp] vhost: 1 node: 2 status: 1
他のアプリケーションはhttp://mydefaulthost.com/OtherAppで正常に動作します。