2011-08-20

Correr Tomcat en el puerto 80 en linux Debian

Normalmente tomcat corre en el puerto 8080.
Sin embargo los servidores web corren en el puerto estandar http 80.

Para correr tomcat en el puerto 80 tenemos 2 opciones:
  1. Correr tomcat como usuario root, lo cual no es aconsejable debido a posibles problemas de seguridad
  2. Redireccionar el puerto 80 al puerto 8080
Es posible redireccionar el puerto 80 al puerto 8080 usando el comando iptables.

iptables -t nat --append PREROUTING -p tcp --dport 80 -j REDIRECT --to-port 8080

Es conveniente añadir este comando al script de inicio automático de tomcat, de esta forma, el script queda:


#! /bin/sh
### BEGIN INIT INFO
# Provides:          tomcat
# Required-Start:    $local_fs $network
# Required-Stop:     $local_fs $network
# Default-Start:     2 3 4 5
# Default-Stop:      0 1 6
# Short-Description: Tomcat
# Description:       Tomcat
### END INIT INFO

# Author: Hipolito Jimenez <hipolito.jimenez@gmail.com>
#
# Please remove the "Author" lines above and replace them
# with your own name if you copy and modify this script.

# Do NOT "set -e"

do_start()
{
    su - tomcat -c "export JAVA_HOME=/opt/java; /opt/tomcat/bin/startup.sh"
    iptables -t nat --append PREROUTING -p tcp --dport 80 -j REDIRECT --to-port 8080
}

#
# Function that stops the daemon/service
#
do_stop()
{
    su - tomcat -c "export JAVA_HOME=/opt/java; /opt/tomcat/bin/shutdown.sh"
    iptables -t nat --flush
}

case "$1" in
  start)
    do_start
    ;;
  stop)
    do_stop
    ;;
  *)
    echo "Usage: tomcat {start|stop}" >&2
    exit 3
    ;;
esac



El comando
iptables -t nat --flush
sirve para eliminar las redirecciones que tengamos definidas en el sistema.

No hay comentarios:

Publicar un comentario