2010-09-22 2 views
1

Я пытаюсь создать кластер JBoss с балансировкой нагрузки Apache. В основном я следовал за гидом от here. Нет проблем. Единственная проблема, с которой я столкнулся, - как мне получить доступ к моему собственному приложению? Из руководства он не упоминал, как мне смонтировать собственное приложение.Балансировка нагрузки JBoss и Apache

Вот мои настройки среды:

  • Windows XP
  • JBoss AS 5,0
  • Apache 2.2.16
  • mod_jk 1.2.30

Вот мои настройки свойства:

httpf.conf

Include conf/mod_jk.conf 

mod_jk.conf

LoadModule jk_module modules/mod_jk.so 
JkWorkersFile conf/workers.properties 
JkLogFile logs/mod_jk.log 
JkLogLevel info 
JkLogStampFormat "[%a %b %d %H:%M:%S %Y]" 
JkOptions +ForwardKeySize +ForwardURICompatUnparsed -ForwardDirectories 
JkRequestLogFormat "%w %V %T" 
JkMount /application/* loadbalancer 
JkUnMount /application/images/* loadbalancer 
JkMountFile conf/uriworkermap.properties 
JkShmFile run/jk.shm 

<Location /jkstatus> 
JkMount status 
Order deny,allow 
Deny from all 
Allow from 127.0.0.1 
</Location> 

workers.properties

worker.list=loadbalancer,status 
worker.node1.port=8009 
worker.node1.host=10.67.51.129 
worker.node1.type=ajp13 
worker.node1.lbfactor=1 
worker.node1.prepost_timeout=10000 #Not required if using ping_mode=A 
worker.node1.connect_timeout=10000 #Not required if using ping_mode=A 
worker.node1.ping_mode=A #As of mod_jk 1.2.27 

worker.node2.port=8009 
worker.node2.host= 10.67.51.64 
worker.node2.type=ajp13 
worker.node2.lbfactor=1 
worker.node2.prepost_timeout=10000 #Not required if using ping_mode=A 
worker.node2.connect_timeout=10000 #Not required if using ping_mode=A 
worker.node2.ping_mode=A #As of mod_jk 1.2.27 

worker.loadbalancer.type=lb 
worker.loadbalancer.balance_workers=node1,node2 

worker.status.type=status 

uriworkermap.properties

/jmx-console=loadbalancer 
/jmx-console/*=loadbalancer 

/web-console=loadbalancer 
/web-console/*=loadbalancer 

/admin-console=loadbalancer 
/admin-console/*=loadbalancer 

/myapp/*=loadbalancer 
!/myapp/images/*=loadbalancer 

server.xml в JBoss

<Engine name="jboss.web" defaultHost="localhost" jvmRoute="node1"> 
<!-- A AJP 1.3 Connector on port 8009 --> 
<Connector port="8009" address="${jboss.bind.address}" 
    emptySessionPath="true" enableLookups="false" redirectPort="8443" 
    protocol="AJP/1.3" connectionTimeout="600000" maxThreads="200"/> 

Это, как я начинаю JBoss

COMP1

run.bat -c all -g DefaultPartition -u 230.0.0.4 -b 10.67.51.129 -Djboss.messaging.ServerPeerID=1 -Djboss.service.binding.set=ports-default 

Comp2

run.bat -c all -g DefaultPartition -u 230.0.0.4 -b 10.67.51.64 -Djboss.messaging.ServerPeerID=2 -Djboss.service.binding.set=ports-01 

Мое имя приложения называется JBossDB. Когда я устал, чтобы получить доступ 10.67.51.129:8080/JBossDB Я могу запустить свое приложение. Но если я попытался запустить localhost/JBossDB, он не загрузится. Заметьте, я могу запустить localhost/admin-console.

Надеюсь, я предоставил всю необходимую информацию. Пожалуйста, помогите мне. Спасибо

ответ

2

Вы забыли добавить правильное сопоставление адресов в файл uriworkermap.properties или до JkMount вариантов.

В uriworkermap.properties вы должны поставить такую ​​строку:

/JBossDB=loadbalancer 
/JBossDB/*=loadbalancer 

ИЛИ в mod_jk.conf такую ​​строку:

JkMount /JBossDB loadbalancer 
JkMount /JBossDB/* loadbalancer 
+0

Эй, это работает ... СПАСИБО !! – Nivek

Смежные вопросы