Dienstag März 14, 2006

Apache 2.2 und Tomcat mit mod_proxy_ajp verbinden

Seit dem Apache 2.2 gibt es ein neues Proxy-Modul names mod_proxy_ajp. Damit kann man sich die ganze Konfigurationsorgie mit mod_jk/mod_jk2 z.T. sparen, wenn man einen Apache vor einen Tomcat hängen möchte. Man hat ja dann alle Apache-Features zur Verfügung, so dass die workers.properties eigentlich nicht mehr gebraucht wird.

Die Sache ist im Prinzip relativ einfach. Zunächst kompiliert man einen Apache 2.2 z.B. so:

./configure
   --prefix=/opt/apache/2.2 \
   --enable-proxy \
   --enable-proxy-ajp

--prefix => Wo soll der Apache installiert werden.
--enable-proxy => Das Grundgerüst soz. für den AJP-Proxy (ohne dieses Modul funkts nicht).
--enable-proxy-ajp => Das Apache-AJP-Kommunikationsmodul für den Tomcat

Wenn man den Apache mit

make
make install

fertig übersetzt und installiert hat, passt man die httpd.conf entsprechend seinen Bedürfnissen an. Dann muss man als nächstes noch die beiden Proxy-Module in der httpd.conf laden:

LoadModule proxy_module /opt/apache/2.2/modules/mod_proxy.so
LoadModule proxy_ajp_module /opt/apache/2.2/modules/mod_proxy_ajp.so

Und dann legt man noch fest, für welchen Kontext der Apache den Tomcat ansprechen soll. Wenn man also z.B. eine Tomcat Web-Applikation test.war im webapps-Verzeichnis hat, dann wird der Kontext hier wahrscheinlich /test sein. Also fügt man z.B. bei einem virt. Host (oder in der globalen Konfiguration) Folgendes hinzu:

<VirtualHost *:80>
   ServerName blubberblah.com
   ProxyRequests Off
   ProxyPass /test ajp://127.0.0.1:8009/test
</VirtualHost>

Nach einem Apache Restart leitet der Apache nun also alles was mit http://blubberblah.com/test beginnt zum Tomcat weiter, wo der Tomcat in diesem Fall auf Port 8009 auf AJP-Anfragen horcht. Ausserdem ist der Tomcat auf localhost (127.0.0.1) gebunden, was immer eine ganz gute Idee ist, wenn man den Port nicht für die ganze Welt öffnen möchte. Dafür hat man ja den Apache eigentlich auch davor geschaltet...

Kommentare:

Senden Sie einen Kommentar:
  • HTML Syntax: Ausgeschaltet