Tomcat es un servidor que proporciona acceso a servelet en java, (seguro que habéis visto alguna vez los .jsp o incluso un .war).
En este tutorial trataremos la instalación sobre un servidor CENTOS.
Para acabar de dar seguridad al sistema, explicaremos la instalación con SSL, muy adecuada si pretendemos correr programas propios de gestión por ejemplo.
Como se requiere del JDK de java, se empezará por instalar este.Objetivos:- Instalar el JDK de Java (oracle)
- Instalar el servidor tomcat
- Proteger con SSL la comunicación
Consideraciones iniciales:El servidor tomcat es independiente del httpd, para (re)iniciarlo, se debe ejecutar:
$CATALINA_HOME/bin/shutdown.sh
$CATALINA_HOME/bin/startup.sh
Según el programa que queramos ejecutar, pueden surgir problemas de tamaño de memoria o de tamaño de heap, se trata este tema al final del tutorial.
Supondremos que tiene un nivel de conocimiento mínimo de Linux y sus comandos: mkdir, cd, ls, wget, chown, chmod, rm, etc..
Para empezar crearemos la carpeta necesaria para java y tomcat:
mkdir /usr/java
A continuación instalamos los paquetes necesarios:
yum -y update
yum -y install httpd httpd-devel php php-common php-devel
Instalación del JDK java:Descargamos el JDK de la página oficial por ejemplo jdk-6u25-linux-x64.bin en nuestro caso, no podemos usar wget porque requiere aceptar unas licencias.
http://www.oracle.com/technetwork/java/javase/downloads/jdk-6u25-download-346242.htmlnos descargamos jdk-6u25-linux-x64.bin y lo podemos subir a nuestro servidor mediante:
scp <archivo local> <host>:/usr/java
<pass>
Le damos permisos de ejecución:
chmod +x /usr/java/jdk-6u25-linux-x64.bin
Y lo ejecutamos:
/usr/java/jdk-6u25-linux-x64.bin
Renombramos la carpeta de jdk:
mv /usr/java/jdk-6u25-linux-x64.bin /usr/java/jdk
Ahora es necesario registrar java para que sea conocido por todo el sistema (modificar las variables de entorno):
Vamos al archivo /etc/profile
nano /etc/profile
y casi al final del todo, justo antes de la línea "unset i" añadimos o modificamos para tener lo siguiente (cuidado con los espacios):
JAVA_HOME=/usr/java/jdk
PATH=$PATH:$JAVA_HOME/bin
export JAVA_HOME PATH
guardamos (Ctrl+x, Y, Enter)
Finalmente para que tengan efectos los cambios realizados:
source /etc/profile
Verificamos que java esta instalado correctamente:
java -version
Que nos debe devolver la versión de java.
Instalación de TOMCAT SSLNos descargamos el archivo tomcat desde el sitio oficial, esta vez podemos usar wget:
http://tomcat.apache.orgwget http://apache.cict.fr/tomcat/tomcat-7/v7.0.14/bin/apache-tomcat-7.0.14.tar.gz /usr/java
Descomprimimos:
tar xzf /usr/java/apache-tomcat-7.0.14.tar.gz /usr/java
Renombramos la carpeta:
mv /usr/java/apache-tomcat-7.0.14 /usr/java/tomcat
Modificamos de nuevo el archivo /etc/profile para añadir las variables de entorno de tomcat:
nano /etc/profile
Antes de "unset i" al final del archivo, tenemos:
JAVA_HOME=/usr/java/jdk
PATH=$PATH:$JAVA_HOME/bin
export JAVA_HOME PATH
Lo editamos para convertirlo en:
JAVA_HOME=/usr/java/jdk
PATH=$PATH:$JAVA_HOME/bin
CATALINA_HOME=/usr/java/tomcat
export JAVA_HOME CATALINA_HOME PATH
Guardamos y actualizamos las variables:
source /etc/profile
Configuración de tomcat:Creamos las claves para el SSL:
keytool -genkey -alias tomcat -keyalg RSA -keystore /usr/java/tomcat/keystore
Hay que responder a algunas preguntas, no tiene dificultad.
Editamos el archivo de configuración de tomcat: /usr/java/tomcat/conf/server.xml
Hay un elemento Connector del estilo de:
<Connector port="8080" protocol="HTTP/1.1"
connectionTimeout="20000"
redirectPort="8443"
/>
Lo comentamos completamente entre <!-- y -->
Poco a continuación hay otro Connector que ya esta comentado, del estilo de:
<Connector port="8443" protocol="HTTP/1.1" SSLEnabled="true"
maxThreads="150" scheme="https" secure="true"
clientAuth="false" sslProtocol="TLS"
/>
Lo descomentamos, quitando el <!-- y --> que lo engloban y lo editamos para que sea igual que:
<Connector port="8443" protocol="HTTP/1.1" SSLEnabled="true"
maxThreads="150" scheme="https" secure="true"
clientAuth="false" sslProtocol="TLS"
keystorePass="TU CLAVE AQUI"
keystoreFile="/usr/java/tomcat/keystore"
/>
(No olvides de cambiar la clave por la que especificaste al crear el certificado)
Finalmente, lanzamos el servidor tomcat:
/usr/java/tomcat/bin/startup.sh
Podemos probar nuestro servidor tomcat en:
https://<mihost>:8443
Resolviendo problemas de memoria y heap:Algunas aplicaciones requieren bastante memoria o un tamaño de heap que superan los límites establecidos inicialmente.
Para resolver estos problemas editamos el archivo /usr/java/tomcat/bin/catalina.sh y justo después de los primeros comentarios, al principio del todo añadimos:
JAVA_OPTS="-Djava.awt.headless=true -Dfile.encoding=UTF-8 -server -Xms512m -Xmx1536m -XX:NewSize=64m -XX:MaxNewSize=256m -XX:PermSize=256m -XX:MaxPermSize=256m -XX:+DisableExplicitGC"
Por supuesto puede elegir los valores que quiera, son en MBytes.
Xms es el tamaño mínimo de memoria reservada por tomcat.
Xmx es el tamaño máximo de memoria reservada por tomcat.
XX son los tamaños del heap.
FinEspero les haya sido de utilidad.
PROBLEMA SIN RESOLVER:
El servidor no se lanza automáticamente después de un reinicio del servidor, hay que ejecutar $CATALINA_HOME/bin/startup.sh cada vez.