Hochverfügbarer JBOSS Server mit mod_jk und Apache2

Um mehrere Web-Application Server hochverfügbar/loadbalanced zu gestalten, kann man dies mit Apache und mod_jk als Web-Frontend durchführen. Hier verwendete Versionen sind

  • JBoss (MX MicroKernel) [4.0.3SP1 (build: CVSTag=JBoss_4_0_3_SP1 date=200510231054)]
  • Apache 2.0.55
  • mod_jk 1.2.20

Voraussetzungen/Annahmen

  • apache-web-server hat IP-Adresse 192.168.1.80 und ist über loadbalancer.1-search.de erreichbar
  • jboss-server #1 (jboss1) hat IP-Adresse 192.168.4.80
  • jboss-server #2 (jboss2) hat IP-Adresse 192.168.4.81
  • Kommunikation läuft über AJP/13, port 8009
  • Applikation heißt tiri

Konfiguration Apache

Virtual Host

Als error-Dokument sollen

  • 404 bei Seite nicht gefunden
  • 500 bei Server Error
  • 503 bei Applikationsserver nicht verfügbar

/etc/apache2/sites-enabled/001-loadbalancer.conf

NameVirtualHost 192.168.1.80:80
<VirtualHost 192.168.1.80:80>
    DocumentRoot /var/www/html/tiri
    ServerName  loadbalancer.1-search.de

    ErrorLog /var/log/apache2/loadbalancer-error_log
    TransferLog /var/log/apache2/loadbalancer-access_log

    JkMount /tiri/* loadbalancer
    JkRequestLogFormat "%m %w %v %U %s %T"
    JkOptions +ForwardKeySize +ForwardURICompat -ForwardDirectories
    JkLogFile /var/log/apache2/loadbalancer-jk_log
    JkLogLevel info

    ErrorDocument 404 http://loadbalancer.1-search.de/e-index-404.html
    ErrorDocument 500 http://loadbalancer.1-search.de/e-index-500.html
    ErrorDocument 503 http://loadbalancer.1-search.de/e-index-503.html

    <Directory /var/www/html/tiri>
        Options FollowSymLinks
        AllowOverride All
        DirectoryIndex index.html
    </Directory>
</VirtualHost>

Apache mod_jk

/etc/apache2/mods-enabled/jk.load

LoadModule jk_module /usr/lib/apache2/modules/mod_jk.so

/etc/apache2/mods-enabled/jk.conf

JkWorkersFile /etc/apache2/workers.properties
JkLogFile /var/log/apache2/jk.log
JkLogLevel info

/etc/apache2/workers.properties

# In Unix, we use forward slashes:
ps=/

worker.list=tiri,loadbalancer,tiristatus
worker.maintain=60

worker.tiristatus.type=status
worker.tiristatus.read_only=true

worker.tiri.type=lb
worker.tiri.balance_workers=jboss2

worker.jboss1.port=8009
worker.jboss1.host=192.168.4.80
worker.jboss1.type=ajp13
worker.jboss1.socket_keepalive=1
worker.jboss1.socket_timeout=600
worker.jboss1.lbfactor=1
worker.jboss1.connection_pool_size=1
worker.jboss1.connection_pool_timeout=120

worker.jboss2.port=8009
worker.jboss2.host=192.168.4.81
worker.jboss2.type=ajp13
worker.jboss2.socket_keepalive=1
worker.jboss2.socket_timeout=600
worker.jboss2.lbfactor=1
worker.jboss2.connection_pool_size=1
worker.jboss2.connection_pool_timeout=120

worker.loadbalancer.type=lb
worker.loadbalancer.balance_workers=jboss2,jboss1
worker.loadbalancer.sticky_session=true
worker.loadbalancer.sticky_session_force=false
worker.loadbalancer.method=session
worker.loadbalancer.lock=optimistic

JBOSS Debugging

Einen “Full thread Dump des Java HotSpot(TM) Server”s erreicht man durch kill -3 auf den JBoss Prozess. Hierdurch läßt sich feststellen, was aktuell im System passiert. Die Ausgabe erfolgt nach STDOUT.

JBOSS Clustering

 
wissen/web/high-available-jboss-application-with-mod_jk-and-apache2.txt · Zuletzt geändert: 05.09.2010 20:31
 
Recent changes RSS feed Donate Valid XHTML 1.0 Valid CSS Recent cached RSS feed cacert-signed web site: inhalt.serviert.de