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...
Posted at 09:00nachm. März 14, 2006 by cetixx in Tipps | Kommentare [0]