Haben Sie eine Applikation mittels JSF oder anderen Techniken auf einem Applikationsserver, z. B. GlassFish, erstellt und soll diese vom Internet erreichbar sein, so können Sie natürlich den AppServer direkt an Port 80 lauschen lassen. Oft aber ist es sinnvoll, einen HTTP-Server vorzuschalten, der sich dann um Lastverteilung oder bereitstellung statischer Seiten kümmern kann.

Das folgende Beispiel zeigt, wie Sie GlassFish hinter einem Apache WebServer betreiben. Dem Beispiel liegt dieses Szenario zugrunde:

  • Die Applikation läuft unter localhost:8080/myapp
  • Die Site unter http://mydomain.net erreichbar
  • Die Site wird als virtueller Server gehostet
  • Das Verzeichnis /myapp wird auf den AppServer geleitet
  • Die Module mod_proxy.so und mod_proxy_http.so sind geladen
<VirtualHost *:80>
   ServerName mydomain.net
   ServerAlias www.mydomain.net

   ServerAdmin webmaster@mydomain.net
   DocumentRoot /var/htdocs/mydomain/

   <Directory /var/htdocs/mydomain/>
       Options Indexes FollowSymLinks MultiViews
       AllowOverride None
       Order allow,deny
       allow from all
   </Directory>

  ProxyRequests Off

  <Proxy *>
    Order deny,allow
    Allow from all
  </Proxy>

  ProxyPass /myapp http://localhost:8080/myapp/
  ProxyPassReverse /myapp http://localhost:8080/myapp/

</VirtualHost>

Die vorliegende Konfiguration zeigt kurz, wie dies für den Apache2 konfiguriert wird. Entscheidend sind hier die Einträge unter ProxyPass(Reverse), welche das Verzeicnis (“/myapp”) auf die lokale Adresse des AppServers (“http://localhost:8080/myapp/”) umleiten. Betrachten Sie dies nur als ein Beispiel. Im Produktivbetrieb ist es aus Sicherheitsgründen ratsam, den Apache-Server in der DMZ und den GlassFish auf einer anderen Maschine hinter der Firewall zu betreiben.

Eine ausführlichere Beschreibung erfolgt möglicherweise später im Rahmen meines Tutorials.