Apache2 y Tomcat5.5 conectados

Forma correcta, conectados mediante Virtual Hosts!!
http://albertovilches.com/debian-apache-2-y-tomcat-6-usando-multiples-dominios-partes-3-y-4

Ventajas:
http://translate.google.es/translate?u=http%3A%2F%2Fpeople.apache.org%2F~mturk%2Fdocs%2Farticle%2Fftwai.html&sl=en&tl=es&hl=&ie=UTF-8

1.- Instalamos los siguientes paquetes de Java:

apt-get install sun-java6-jdk java-common libservlet2.4-java

2.- Suponemos que ambas aplicaciones ya están instaladas y configuradas cada una para su uso particular (rendimiento, ssl…).

apt-get install tomcat5.5 apache2 apache2.2-common apache2-utils ssl-cert

3.- Configuración de Java:

cp /usr/lib/jvm/java-6-sun/jre/lib/security/java.policy /usr/lib/jvm/java-6-sun/jre/lib/security/java.policy.`date +%d%m%g`
vi /usr/lib/jvm/java-6-sun/jre/lib/security/java.policy

#Sustituimos su contenido por:
grant {
    permission java.security.AllPermission;
};

4.- Configurar estructura

El objetivo de esto es que Apache se encargue de las partes estáticas y Tomcat de las dinámicas.
Para ello se va a seguir la siguiente estructura:

ll /home/ulysse/datos/
total 16
drwxr-xr-x 4 ulysse   ulysse   4096 2009-10-06 17:30 .
drwxr-xr-x 5 ulysse   ulysse   4096 2009-10-06 16:45 ..
drwxr-s--- 3 tomcat55 www-data 4096 2009-10-07 17:17 webapps
drwxr-s--- 3 ulysse   www-data 4096 2009-10-07 12:15 www

Para cada proyecto se creará una carpeta con el mismo nombre tanto en webapps como en www. Por ejemplo:

ll /home/ulysse/datos/webapps/
total 10780
drwxr-s--- 3 tomcat55 www-data     4096 2009-10-07 17:17 .
drwxr-xr-x 4 ulysse   ulysse       4096 2009-10-06 17:30 ..
drwxr-sr-x 9 tomcat55 www-data     4096 2009-10-07 17:17 wifimas
-rw-r--r-- 1 tomcat55 www-data 11008997 2009-10-01 11:25 wifimas.war

ll /home/ulysse/datos/www/
total 12
drwxr-s--- 3 ulysse www-data 4096 2009-10-07 12:15 .
drwxr-xr-x 4 ulysse ulysse   4096 2009-10-06 17:30 ..
drwxr-s--- 2 ulysse www-data 4096 2009-10-07 12:16 wifimas

Se observa que en webapps está tanto el .war que despliega la aplicación como la propia aplicación, y en www una carpeta con el mismo nombre (ojo con los permisos y propietarios!!).

En lugar de mover de webapps a www las partes estáticas (css, images, js), creamos enlaces simbólicos:

/home/ulysse/datos/www/wifimas# ln -s ../../webapps/wifimas/css/
/home/ulysse/datos/www/wifimas# ln -s ../../webapps/wifimas/images/
/home/ulysse/datos/www/wifimas# ln -s ../../webapps/wifimas/js/

chown ulysse:www-data /home/ulysse/datos/www/wifimas/*

/home/ulysse/datos/www/wifimas# ll
total 8
drwxr-sr-x 2 root   www-data 4096 2009-10-07 12:16 .
drwxr-s--- 3 ulysse www-data 4096 2009-10-07 12:15 ..
lrwxrwxrwx 1 ulysse   www-data   26 2009-10-07 12:15 css -> ../../webapps/wifimas/css/
lrwxrwxrwx 1 ulysse   www-data   29 2009-10-07 12:15 images -> ../../webapps/wifimas/images/
lrwxrwxrwx 1 ulysse   www-data   24 2009-10-07 12:16 js -> ../../webapps/wifimas/js/

5.- Configuración de Tomcat:

Si se va a utlizar MySQL

Añadir librería mysql-connector-java-5.1.6-bin.jar a /usr/share/tomcat5.5/common/lib/

Conectores

cp /var/lib/tomcat5.5/conf/server.xml /var/lib/tomcat5.5/conf/server.xml.`date +%d%m%g`

#Asegurar que port="8180"

<!-- Define a non-SSL HTTP/1.1 Connector on port 8180 -->
<Connector port="8180" maxHttpHeaderSize="8192"
    maxThreads="150" minSpareThreads="25" maxSpareThreads="75"
        enableLookups="false" redirectPort="443" acceptCount="100"
        connectionTimeout="20000" disableUploadTimeout="true" />

Virtual Hosts

#Añadir al final del archivo, antes de </Engine>
<Host
    appBase="/home/ulysse/datos/webapps"
    name="213.190.0.242">
    <Context docBase="" path=""> </Context>
</Host>

name -> dns(www.wifimas.com) o ip de la máquina

DocumentRoot

cd /usr/share/tomcat5.5/
mv webapps webapps.`date +%d%m%g`
ln -s /home/ulysse/datos/webapps
chown -h tomcat55:root webapps

cd /var/lib/tomcat5.5/
mv webapps webapps.`date +%d%m%g`
ln -s /home/ulysse/datos/webapps
chown -h tomcat55:root webapps

6.- Configuración Apache y jk:

modulo jk

a2enmod jk (si no esta instalado, el paquete es libapache2-mod-jk)

workers.properties

cp /etc/libapache2-mod-jk/workers.properties /etc/libapache2-mod-jk/workers.properties.`date +%d%m%g`
vi /etc/libapache2-mod-jk/workers.properties

workers.tomcat_home=/var/lib/tomcat5.5/
workers.java_home=/usr/lib/jvm/java-6-sun/

jk.conf

vi /etc/apache2/mods-available/jk.conf

# Where to find workers.properties
JkWorkersFile /etc/libapache2-mod-jk/workers.properties

# Where to put jk logs
JkLogFile /var/log/apache2/mod_jk.log

# Set the jk log level [debug/error/info]
JkLogLevel info

JkShmFile /var/log/apache2/jk-runtime-status

# Select the log format
JkLogStampFormat "[%a %b %d %H:%M:%S %Y] "

# JkOptions indicate to send SSL KEY SIZE
JkOptions +ForwardKeySize +ForwardURICompat -ForwardDirectories

JkMount /wifimas/ ajp13_worker

JkMount /wifimas/*.do ajp13_worker

cd /etc/apache2/mods-enabled/
ln -s ../mods-available/jk.conf

7.- Reiniciamos Tomcat y luego Apache:

/etc/init.d/tomcat5.5 restart
/etc/init.d/apache2 restart

« Linux

Si no se indica lo contrario, el contenido de esta página se ofrece bajo Creative Commons Attribution-ShareAlike 3.0 License