Instalacion y configuracion Apache, JDK, Tomcat, mod_jk en Unix/Linux.
Configuración para acceder a la aplicacion desde la URL (http://www.url.com, no http://www.url.com/aplicacion)
1) Instalación básica Apache
Definir y descargar la versión a utilizar
http://httpd.apache.org/download.cgi
Descomprimir
$ gzip -d httpd-2_0_NN.tar.gz
$ tar xvf httpd-2_0_NN.tar
Ejecutar el script configure
$ ./configure --prefix=PREFIX
Compilar e instalar
$ make
$ make install
Personalizar
$ vi <APACHE_HOME>/conf/httpd.conf
Comprobar que la instalación funciona
$ <APACHE_HOME>/bin/apachectl start
Documentación
http://httpd.apache.org/docs/2.0/es/install.html
2) Instalación JDK
Definir y descargar la versión a utilizar
http://www.oracle.com/technetwork/java/javase/downloads/jdk-6u25-download-346242.html
3) Instalación básica Tomcat
Definir y descargar la versión a utilizar
http://tomcat.apache.org/whichversion.html
Descomprimir
$ gzip -d jakarta-tomcat-<numero_de_version>.tar.gz
$ tar xvf jakarta-tomcat-<numero_de_version>.tar
Configurar variables
$ vi /etc/profile
Agregar al final del /etc/profile las siguientes lineas
JAVA_HOME=<PATH_JAVA>
PATH=$PATH:<PATH_JAVA>/bin
export PATH JAVA_HOME; source /etc/profiles
Comprobar que la instalación funciona
$ <PATH_TOMCAT>/bin/startup.sh
Documentación
http://tomcat.apache.org/tomcat-5.5-doc/
4) Instalación modulo mod_jk
Definir y descargar la versión a utilizar
http://www.apache.org/dist/tomcat/tomcat-connectors/jk/binaries/
Renombrar y mover el fichero
$ mv file.so <APACHE_HOME>/modules/mod_jk.so
Configuración del modulo
Agregar al final del file <APACHE_HOME>/conf/httpd.conf las siguientes lineas:
<IfModule !mod_jk.c>
LoadModule jk_module <APACHE_HOME>/modules/mod_jk.so
</IfModule>
JkWorkersFile <APACHE_HOME>/conf/workers.properties
JkLogFile <APACHE_HOME>/logs/mod_jk.log
JkLogLevel info
JkShmFile <APACHE_HOME>/ogs/jk.shm
JkLogStampFormat "[%a %b %d %H:%M:%S %Y] "
Configuracion <APACHE_HOME>/conf/workers.properties
worker.list=aplicacion
worker.aplicacion.port=8009
worker.aplicacion.type=ajp13
worker.aplicacion.ping_mode=A
worker.aplicacion.host=localhost
worker.aplicacion.reply_timeout=1000000
worker.aplicacion.socket_connect_timeout=1000000
worker.aplicacion.connection_pool_timeout=600
Documentación http://tomcat.apache.org/connectors-doc/
Parametro JkMount
El parámetro jkmount, definido en cada virtual host, especifica que las URLs con dicho formato serán procesadas por el servidor Tomcat. Ejemplo httpd.conf:
<VirtualHost *:80>
ServerName www.url.com
...
...
JkMount /sitio/* aplicacion
</VirtualHost>
Con esta configuración podemos acceder a la URL www.url.com, y nos servira el contenido estático el apache, a su vez, si queremos acceder a la aplicacion "Sitio", ingresamos a www.url.com/sitio/index.jsp, en este caso el contenido es dinamico, y lo sirve el tomcat.
Si en lugar de querer acceder a la aplicación "sitio" a través de www.url.com/sitio/index.jsp, queremos acceder directamente ingresando a www.url.com, debemos realizar las siguientes configuraciones
1) Configurar parámetro jkmount Apache (httpd.conf)
JkMount / sitio
JkMount /* sitio
JkMount /*.jsp sitio
2) Verificar el nombre del worker y el nombre de la aplicacion
Dentro del file <APACHE_HOME>/conf/workers.properties se definen los workers a utilizar, dependiendo de donde querramos enviar el contenido dinamico podemos cargar uno o varios workers. El nombre del worker debe coincidir con el nombre de la aplicacion para poder montar la aplicación y acceder a ella a traves de www.url.com, es decir, debe coincidir el valor de el nombre del worker utilizado para acceder a la aplicacion, y el nombre del path de la aplicacion;
- Configuración del worker
worker.list=sitio
worker.sitio.port=8009
worker.sitio.type=ajp13
worker.sitio.host=localhost
- Path de la aplicacion:
<TOMCAT_HOME>/apps/sitio/webapps/sitio/
3) Configurar parámetros Tomcat (server.xml)
Dentro del file server.xml del Tomcat deben configurarse dos parametros, el "Engine jvmRoute", ahi hay que colocar el nombre del worker, o lo que es lo mismo, el nombre de la aplicación.
<Engine jvmRoute="sitio" name="Catalina" defaultHost="localhost">
El segundo parametro a configurar es el "Context path", eso debemos dejarlo en blanco, para acceder a la aplicacion sin poner nada despues de la URL, dejar despues del igual ( = ) solo las dos comillas vacias ( "" )
<Context path="" docBase="<TOMCAT_HOME>/apps/sitio/webapps/sitio" workDir="<TOMCAT_HOME>/apps/sitio/work" debug="1" privileged="true" reloadable="true">
Configuración para acceder a la aplicacion desde la URL (http://www.url.com, no http://www.url.com/aplicacion)
1) Instalación básica Apache
Definir y descargar la versión a utilizar
http://httpd.apache.org/download.cgi
Descomprimir
$ gzip -d httpd-2_0_NN.tar.gz
$ tar xvf httpd-2_0_NN.tar
Ejecutar el script configure
$ ./configure --prefix=PREFIX
Compilar e instalar
$ make
$ make install
Personalizar
$ vi <APACHE_HOME>/conf/httpd.conf
Comprobar que la instalación funciona
$ <APACHE_HOME>/bin/apachectl start
Documentación
http://httpd.apache.org/docs/2.0/es/install.html
2) Instalación JDK
Definir y descargar la versión a utilizar
http://www.oracle.com/technetwork/java/javase/downloads/jdk-6u25-download-346242.html
3) Instalación básica Tomcat
Definir y descargar la versión a utilizar
http://tomcat.apache.org/whichversion.html
Descomprimir
$ gzip -d jakarta-tomcat-<numero_de_version>.tar.gz
$ tar xvf jakarta-tomcat-<numero_de_version>.tar
Configurar variables
$ vi /etc/profile
Agregar al final del /etc/profile las siguientes lineas
JAVA_HOME=<PATH_JAVA>
PATH=$PATH:<PATH_JAVA>/bin
export PATH JAVA_HOME; source /etc/profiles
Comprobar que la instalación funciona
$ <PATH_TOMCAT>/bin/startup.sh
Documentación
http://tomcat.apache.org/tomcat-5.5-doc/
4) Instalación modulo mod_jk
Definir y descargar la versión a utilizar
http://www.apache.org/dist/tomcat/tomcat-connectors/jk/binaries/
Renombrar y mover el fichero
$ mv file.so <APACHE_HOME>/modules/mod_jk.so
Configuración del modulo
Agregar al final del file <APACHE_HOME>/conf/httpd.conf las siguientes lineas:
<IfModule !mod_jk.c>
LoadModule jk_module <APACHE_HOME>/modules/mod_jk.so
</IfModule>
JkWorkersFile <APACHE_HOME>/conf/workers.properties
JkLogFile <APACHE_HOME>/logs/mod_jk.log
JkLogLevel info
JkShmFile <APACHE_HOME>/ogs/jk.shm
JkLogStampFormat "[%a %b %d %H:%M:%S %Y] "
Configuracion <APACHE_HOME>/conf/workers.properties
worker.list=aplicacion
worker.aplicacion.port=8009
worker.aplicacion.type=ajp13
worker.aplicacion.ping_mode=A
worker.aplicacion.host=localhost
worker.aplicacion.reply_timeout=1000000
worker.aplicacion.socket_connect_timeout=1000000
worker.aplicacion.connection_pool_timeout=600
Documentación http://tomcat.apache.org/connectors-doc/
Parametro JkMount
El parámetro jkmount, definido en cada virtual host, especifica que las URLs con dicho formato serán procesadas por el servidor Tomcat. Ejemplo httpd.conf:
<VirtualHost *:80>
ServerName www.url.com
...
...
JkMount /sitio/* aplicacion
</VirtualHost>
Con esta configuración podemos acceder a la URL www.url.com, y nos servira el contenido estático el apache, a su vez, si queremos acceder a la aplicacion "Sitio", ingresamos a www.url.com/sitio/index.jsp, en este caso el contenido es dinamico, y lo sirve el tomcat.
Si en lugar de querer acceder a la aplicación "sitio" a través de www.url.com/sitio/index.jsp, queremos acceder directamente ingresando a www.url.com, debemos realizar las siguientes configuraciones
1) Configurar parámetro jkmount Apache (httpd.conf)
JkMount / sitio
JkMount /* sitio
JkMount /*.jsp sitio
2) Verificar el nombre del worker y el nombre de la aplicacion
Dentro del file <APACHE_HOME>/conf/workers.properties se definen los workers a utilizar, dependiendo de donde querramos enviar el contenido dinamico podemos cargar uno o varios workers. El nombre del worker debe coincidir con el nombre de la aplicacion para poder montar la aplicación y acceder a ella a traves de www.url.com, es decir, debe coincidir el valor de el nombre del worker utilizado para acceder a la aplicacion, y el nombre del path de la aplicacion;
- Configuración del worker
worker.list=sitio
worker.sitio.port=8009
worker.sitio.type=ajp13
worker.sitio.host=localhost
- Path de la aplicacion:
<TOMCAT_HOME>/apps/sitio/webapps/sitio/
3) Configurar parámetros Tomcat (server.xml)
Dentro del file server.xml del Tomcat deben configurarse dos parametros, el "Engine jvmRoute", ahi hay que colocar el nombre del worker, o lo que es lo mismo, el nombre de la aplicación.
<Engine jvmRoute="sitio" name="Catalina" defaultHost="localhost">
El segundo parametro a configurar es el "Context path", eso debemos dejarlo en blanco, para acceder a la aplicacion sin poner nada despues de la URL, dejar despues del igual ( = ) solo las dos comillas vacias ( "" )
<Context path="" docBase="<TOMCAT_HOME>/apps/sitio/webapps/sitio" workDir="<TOMCAT_HOME>/apps/sitio/work" debug="1" privileged="true" reloadable="true">