Bylo juz o konfiguracji kontenera Apache-Tomcat, pojawil sie tez opis mixa Apache-PHP-MySQL, pozostaje jednak, jeszcze pare innych waznych konfiguracji, tj. Tomcat Workers (load balancing) czy konektor AJP, ktorym dzis sie zajmiemy.
W skrocie, konektor AJP sluzy do polaczenia dwoch punktow webowych protokolem AJP, np. serwer Apache na jednej maszynie oraz Tomcat na drugiej. Mozemy ukryc w ten sposob serwer Tomcat przed bezposrednim dostepem z zewnatrz – na przyklad.
1. Instalujemy Apache (na maszynie 192.168.1.1)
czlowiek@maszyna:~$ sudo apt-get install apache2
Domyslna instalacja na apache2-mpm-worker
czlowiek@maszyna:~$ apache2ctl -V
Server version: Apache/2.2.12 (Ubuntu)
Server built: Nov 12 2009 22:51:51
Server's Module Magic Number: 20051115:23
Server loaded: APR 1.3.8, APR-Util 1.3.9
Compiled using: APR 1.3.8, APR-Util 1.3.9
Architecture: 32-bit
Server MPM: Worker
threaded: yes (fixed thread count)
forked: yes (variable process count)
Server compiled with....
-D APACHE_MPM_DIR="server/mpm/worker"
...
nie dziala najlepiej w konektorze AJP, wiec instalujemy apache2-mpm-prefork, ktory jest moze mniej wydajny, ale za to bardziej stabilny.
2. Instalujemy apache2-mpm-prefork
czlowiek@maszyna:~$ sudo apt-get install apache2-mpm-prefork
Tak jest poprawnie
czlowiek@maszyna:~$ apache2ctl -V
...
Server MPM: Prefork
...
-D APACHE_MPM_DIR="server/mpm/prefork"
...
3. Wlaczamy modul proxy_ajp
czlowiek@maszyna:~$ sudo a2enmod proxy_ajp
4. Konfigurujemy modul
czlowiek@maszyna:~$ sudo nano /etc/apache2/mods-enabled/proxy.conf
wlaczamy requesty i zmieniamy prawa
ProxyRequests On
Allow from all
5. Konfigurujemy konekta, otwieramy konfig apache
czlowiek@maszyna:~$ sudo nano /etc/apache2/sites-enabled/000-default
i dopisujemy linie
ProxyPass /examples/servlets/ ajp://192.168.1.5:8009/examples/servlets/
w wezle
<VirtualHost *:80>
gdzie adres ip 192.168.1.5 bedzie maszyna z zainstalowanym serwerem Tomcat.
Wiec, na drugiej maszynie konfigurujemy Apache-Tomcat. Tym razem pobieramy gotowa paczke – jezeli jednak instalacja, to zapraszam tutaj.
6. Pobieramy najnowsza paczke (na maszynie 192.168.1.5)
czlowiek@maszyna2:~$ sudo -i
root@maszyna2:~$ wget http://ftp.tpnet.pl/vol/d1/apache/tomcat/tomcat-6/v6.0.20/bin/apache-tomcat-6.0.20.tar.gz
7. Ekstraktujemy i kopiujemy
root@maszyna2:~$ tar xzvf apache-tomcat-6.0.20.tar.gz -C /tmp
root@maszyna2:~$ mkdir /usr/local/tomcat6 && cp -R /tmp/apache-tomcat-6.0.20/* /usr/local/tomcat6
8. Testujemy Tomcata
root@maszyna2:~$ wget -q http://localhost:8080 -O /tmp/atest && cat /tmp/atest | grep -i "Apache Tomcat"
<title>Apache Tomcat</title>
...
lub wpisujemy adres (http://localhost:8080) w ulubionej przegladarce

9. Konfigurujemy Tomcata – otwieramy server.xml i upewniamy sie, ze ponizszy konektor jest odkomentowany.
<Connector port="8009" protocol="AJP/1.3" redirectPort="8443" />
Teoretycznie wszystko dziala poprawnie, ale na wszelki wypadek restarty i testy
root@maszyna2:~$ /etc/init.d/apache2 restart
root@maszyna2:~$ /usr/local/tomcat6/bin/shutdown.sh
root@maszyna2:~$ /usr/local/tomcat6/bin/startup.sh
Po wpisaniu adresu http://192.168.1.1/examples/servlets/ dostaniemy strone z przykladami servletow na serwerze Tomcat z maszyny o ip 192.168.1.5
Oczywiscie jezeli port 8009/tcp na maszynie 192.168.1.5 jest zamkniety to trzeba go otworzyc dla polaczen z serwerem Apache zainstalowanym na maszynie 192.168.1.1