Apache2, Tomcat6 e JK Connector

Questo piccolo tutorial spiega come utilizzare Apache2 e Tomcat6 su ubuntu, facendoli coesistere con JK connector. L’obbiettivo è quello di usare Apache come frontend e richiamare Tomcat solo al bisogno (per esempio per eseguire solo applicazioni JSP/Servlet). Ubuntu permette una gestione molto semplice dei pacchetti, infatti basta scegliere dal menu “Sistema“-> “Amministrazione“-> “Gestione pacchetti“, ed è possibile installare i pacchetti che ci interessano.

Selezionare i seguenti pacchetti e successivamente procedere con la loro installazione:

  • apache2
  • tomcat6
  • libapache2-mod-jk

Dopo l’installazione, per verificare il corretto funzionamento di Apache e Tomcat basta aprire il browser su:

http://localhost (Apache)
http://localhost:8080 (Tomcat)

Adesso cerchiamo di collegare il Server Web Apache con l’application Server Tomcat mediante JK Connector.
Per fare questo è necessario per prima cosa creare il file di configurazione worker.properties sotto la dir di apache dove troviamo i file di configurazione, allo stesso livello di httpd.conf.

Nel mio caso creo worker.properties sotto /etc/apache2 e inserisco al suo interno le seguenti righe:

workers.tomcat_home=/usr/share/tomcat6
workers.java_home=/usr/lib/jvm/java-6-openjdk
ps=/
worker.list=ajp13
worker.ajp13.host=localhost
worker.ajp13.port=8009
worker.ajp13.type=ajp13

dove:

  • tomcat_home è valorizzata con il percorso di CATALINA_HOME, il cui percorso è visibile nella pagina di defautl di Tomcat consultabile su http://localhost:8080.
  • java_home indica il percorso della Java Virtual Machine

Cosa importante da fare a questo punto, è quella di aprire la porta 8009 (porta default per ajp13) in tomcat. Per fare questo è sufficiente decommentare la riga: <Connector port=”8009″ protocol=”AJP/1.3″ redirectPort=”8443″ /> presente nel file di configurazione /etc/tomcat6/server.xml

Ora Tomcat è in ascolto sulla porta 8009 ed è in grado di ricevere richieste che arriveranno dal connettore JK. Ora è necessario permettere ad apache di richiamare tomcat quando necessario. Per fare questo, dobbiamo apportare alcune modifiche a 3 file di configurazione di apache.

1) Aprire  /etc/apache2/mods-avalaible/jk.load ed aggiungere sotto la direttiva LoadModule jk_module /usr/lib/apache2/modules/mod_jk.so, le seguenti righe:

JkWorkersFile /etc/apache2/workers.properties
JkLogFile /etc/apache2/mod_jk.log
JkLogLevel error
JkMount /examples ajp13
JkMount /examples/* ajp13

dove indichiamo il percorso del file workers.properties precedentemente creato, il percorso del file di log e le dir che vogliamo montare con Tomcat.
In questo esempio indichiamo ad apache che se viene richiamato http://localhost/example/ , la richiesta dovrà essere inoltrata a tomcat.

2) Aprire httpd.conf ed aggiungere alla fine del file di configurazione le seguenti righe:

ServerAdmin webmaster@localhost

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

ScriptAlias /cgi-bin/ /usr/lib/cgi-bin/
<Directory “/usr/lib/cgi-bin”>
AllowOverride None
Options +ExecCGI -MultiViews +SymLinksIfOwnerMatch
Order allow,deny
Allow from all
</Directory>

ErrorLog /var/log/apache2/error.log

# Possible values include: debug, info, notice, warn, error, crit,
# alert, emerg.
LogLevel warn

CustomLog /var/log/apache2/access.log combined

Alias /doc/ “/usr/share/doc/”
<Directory “/usr/share/doc/”>
Options Indexes MultiViews FollowSymLinks
AllowOverride None
Order deny,allow
Deny from all
Allow from 127.0.0.0/255.0.0.0 ::1/128
</Directory>

3) Aprire il file /etc/apache2/ports.conf ed eliminiamo la riga NameVirtualHost *:80, salvare il file e chiuderlo.

A questo punto, eseguiamo i seguenti comandi:

//Per disabilitare il file di configurazione di default di apache
sudo a2dissite default

//Per riavviare apache
sudo /etc/init.d/apache2 restart

//Per riavviare tomcat
sudo /etc/init.d/tomcat6 restart

Se tutto è stato eseguito alla lettera, la pagina che visualizzeremo su http://localhost:8080/examples sarà la stessa che vediamo su http://localhost/examples con la differenza che nel primo caso siamo noi a richiamare direttamente tomcat mentre nel secondo caso, noi richiamiamo apache e lui si preoccupare di delegare tomcat perchè riconosce la dir examples come di sua competenza.

About these ads
Published in: on gennaio 10, 2010 at 3:25 pm  Lascia un commento  

The URI to TrackBack this entry is: http://landidavid.wordpress.com/2010/01/10/apache2-tomcat6-e-jk-connector/trackback/

RSS feed dei commenti a questo articolo.

Rispondi

Inserisci i tuoi dati qui sotto o clicca su un'icona per effettuare l'accesso:

Logo WordPress.com

Stai commentando usando il tuo account WordPress.com. Chiudi sessione / Modifica )

Foto Twitter

Stai commentando usando il tuo account Twitter. Chiudi sessione / Modifica )

Foto di Facebook

Stai commentando usando il tuo account Facebook. Chiudi sessione / Modifica )

Google+ photo

Stai commentando usando il tuo account Google+. Chiudi sessione / Modifica )

Connessione a %s...

Iscriviti

Ricevi al tuo indirizzo email tutti i nuovi post del sito.

%d blogger cliccano Mi Piace per questo: