Tengo un Tomcat instalado en un RHEL5 en /opt/apache-tomcat-5.5.23 con una liga simbólica de /opt/tomcat5
Dentro de esta instalación en /opt/tomcat5/conf/server.xml tengo configurados varias aplicaciones. Teniendo varias desventajas.
- Si una aplicación consume muchos recursos, todas las demás bajan de rendimiento.
- Si una aplicación congela el JVM, las demás dejan de funcionar también.
Ahora estoy desarrollando para Tomcat 6 y no quise migrar todas la aplicaciones ya configuradas y probadas en Tomcat 5.5.
Cree un directorio nuevo /var/tomcat y extraje el último Tomcat 6 en /var/tomcat/apache-tomcat-6.0.16
Cree otro directorio, exclusivo para mi instancia lo llamé serverB (pensando en que luego habrá un serverA y un serverC) y cree el siguiente árbol.
|-- conf
| |-- server.xml
| |-- tomcat-users.xml
| `-- web.xml
|-- logs
| `-- catalina.out
|-- temp
|-- webapps
`-- work
Ahora viene lo bueno.
Para correr la instancia y que no choque con la que ya está corriendo, hay que cambiar algunos puertos.
<Service name="Catalina">
<Connector port="8082" URIEncoding="UTF-8" />
<!-- Define an AJP 1.3 Connector on port 8020 -->
<Connector port="8020" enableLookups="false" redirectPort="9972" protocol="AJP/1.3"
URIEncoding="UTF-8" />
Creamos un script de arranque,
run
#!/bin/sh -e
JAVA_HOME="/usr/lib/jvm/java-1.5.0-sun-1.5.0.11"
JAVA_OPTS="-Xmx800m -Xms800m"
#CATALINA_HOME=/opt/tomcat5
CATALINA_HOME=/var/tomcat/apache-tomcat-6.0.16
CATALINA_BASE=/var/tomcat/serverB
export JAVA_HOME JAVA_OPTS CATALINA_HOME CATALINA_BASE
# -p preserves the environment (for $JAVA_HOME etc.)
# -s is required because tomcat's login shell is /bin/false
su -p -s /bin/sh tomcat -c "$CATALINA_HOME/bin/catalina.sh start"
y un script de parada
stop
#!/bin/sh -e
JAVA_HOME="/usr/lib/jvm/java-1.5.0-sun-1.5.0.11"
JAVA_OPTS="-Xmx800m -Xms800m"
CATALINA_HOME=/var/tomcat/apache-tomcat-6.0.16
CATALINA_BASE=/var/tomcat/serverB
export JAVA_HOME JAVA_OPTS CATALINA_HOME CATALINA_BASE
su -p tomcat -c "$CATALINA_HOME/bin/catalina.sh stop"
Ahora tenemos otro Tomcat corriendo en el mismo servidor con puertos diferentes. Creamos un workerb en /etc/httpd/conf/worker.properties apuntando al puerto 8020.
worker.workerb.port=8020
worker.workerb.host=localhost
worker.workerb.type=ajp13
worker.workerb.lbfactor=1
y listo!