¿Cómo cambiar el puerto de Tomcat de 8080 a 80?

Respuestas:

215

1) Ir a la confcarpeta en el directorio de instalación de tomcat

 e.g. C:\Tomcat 6.0\conf\

2) Editar la siguiente etiqueta en el server.xml archivo

<Connector connectionTimeout="20000" port="8080" protocol="HTTP/1.1" redirectPort="8443"/>

3) Cambie el port=8080valor aport=80

4) Guardar archivo.

5) Detenga su Tomcat y reinícielo.

Romaní
fuente
14
Además, asegúrese de detener y reiniciar Tomcat. Solo digo. :)
AllieCat
3
¡Hice esto y recibo un error 404! ¿Hay algo más que debería estar haciendo?
Saturnian
15
En etc/default/tomcat7conjunto AUTHBIND=yes, para evitar un error PermissionDenied para el puerto 80.
Markus Pscheidt
1
¡Vea la respuesta de Rose para el entorno Linux!
Marko
Esta respuesta carece de la información / etc / authbind, vea la respuesta de Rose a continuación
jorfus
119

Ubuntu 14.04 LTS, en Amazon EC2. Los siguientes pasos resolvieron este problema por mí:

1. Edite server.xml y cambie port = "8080" a "80"

sudo vi /var/lib/tomcat7/conf/server.xml

<Connector connectionTimeout="20000" port="8080" protocol="HTTP/1.1" redirectPort="8443"/>

2. Edite el archivo tomcat7 (si el archivo no se creó, entonces debe crearlo)

sudo vi /etc/default/tomcat7

descomentar y cambiar # AUTHBIND = no a yes

3. Instalar authbind

sudo apt-get install authbind

4. Ejecute los siguientes comandos para proporcionar lectura y ejecución de tomcat7 en el puerto 80.

sudo touch /etc/authbind/byport/80
sudo chmod 500 /etc/authbind/byport/80
sudo chown tomcat7 /etc/authbind/byport/80

5. Reinicie tomcat:

sudo /etc/init.d/tomcat7 restart
Rosa
fuente
1
Ese funciona. Gente de Linux, al menos funciona para mí con Ubuntu 14.04.2 LTS.
Rodrigo Gurgel
3
Autobind es la respuesta correcta. Pero tenga en cuenta que puede omitir el enlace automático en caso de que esté usando 'sudo startup.sh' ya que el puerto 80 se otorgará al usuario escalado.
Marcio Jasinski
1
¡¡Gracias!! ¡Sabía cómo habilitar authbind en la configuración del servidor, pero no sabía que tenía que crear un archivo en authbind para el puerto registrado! ¡Ojalá OP hubiera cambiado la solución aceptada a esta respuesta! (Veo que tardó casi 3 años en contestar: P)
Fr0zenFyr
1
Funciona con Tomcat 9 en Lubuntu 18.0.4, sin instalar authbind, solo agrega la configuración.
Marco Sulla
107

En un Linux basado en Debian (incluido Ubuntu), también debe ir /etc/default/tomcat7, descomentar la #AUTHBIND=nolínea y establecer su valor en 'sí', para permitir que el servidor se vincule a un puerto privilegiado.

Cielos pioneros
fuente
2
Hola, no tengo ese archivo en particular
nmkyuppie
¿Qué versión de tomcat? ¿En qué sistema operativo estás?
Pioneer Skies
77
No funciona para Tomcat si está instalado por zip / tar.gz, ya que no crean el archivo en / etc / defaults /.
Gorkamorka
9
Esa ruta de arriba debería ser: / etc / default / tomcat7 (tenga en cuenta la falta de 's' en defecto)
Tristan Reid
1
¿Cuál es el igual para Tomcat 9?
Katu
29

En los sistemas Ubuntu y Debian, se necesitan varios pasos:

  1. En server.xml, cambie la línea <Connector connectionTimeout="20000" port="8080" protocol="HTTP/1.1" redirectPort="8443"/>para tener port="80".

  2. Instale el paquete de authbind recomendado (no requerido), con un comando como:

    sudo apt-get install authbind

  3. Habilite authbind en el archivo server.xml (en cualquiera /etc/tomcat6o /etc/tomcat7) descomentando y configurando la línea como:

    AUTHBIND=yes

Los tres pasos son necesarios.

Peter N. Steinmetz
fuente
55
No funciona para Tomcat (si está instalado por zip / tar.gz) en 13.10.
Gorkamorka
44
Para que funcione desde zip / tar.gz, siga los pasos 1 y 2 anteriores, agregue AUTHBIND = yes a bin / setenv.sh (crear si no está allí) y comience desde la raíz. Funciona con LTS 12.04, también debería funcionar con 13.10.
karl
En mi caso falló (sin mensaje de error en catalina.out) sin el paquete authbind, funcionó después de instalarlo
golimar
¿Podría señalar la documentación sobre AUTHBIND = yes? No lo encuentro en ninguna parte.
ARX
Tampoco puedo encontrar una mención de la configuración AUTHBIND como parte de la configuración del elemento del servidor en la documentación de TOMCAT. Extraño.
Peter N. Steinmetz
22

Intenté cambiar el puerto de 8080a 80en server.xmlpero no funcionó para mí. Luego encontré una alternativa, actualice la iptablesque estoy seguro de que tiene un impacto en el rendimiento.

Yo uso los siguientes comandos:

sudo /sbin/iptables -t nat -I PREROUTING -p tcp --dport 80 -j REDIRECT --to-port 8080
sudo /sbin/service iptables save

http://www.excelsior-usa.com/articles/tomcat-amazon-ec2-advanced.html#port80

Athar
fuente
¿Cómo revertir esto?
SAI GIRI CHARY AOUSULA
Ejecute el siguiente comando para eliminar el enrutamiento: iptables -t nat -D PREROUTING -p tcp --dport 80 -j REDIRECT --to-port 8080
casol
17

Como las respuestas anteriores no funcionaron bien (fue bueno, pero no suficiente) para mí en un servidor Ubuntu 14.04, menciono estas recomendaciones (esta es una cita).

Editar: tenga en cuenta que, como @ jason-faust lo mencionó en los comentarios, el 14.04, el authbindpaquete que se incluye con él ahora es compatible con IPv6, por lo que ya no es necesario lo que prefiere IPv4 .

1) Install authbind
2) Make port 80 available to authbind (you need to be root):

  touch /etc/authbind/byport/80
  chmod 500 /etc/authbind/byport/80
  chown tomcat7 /etc/authbind/byport/80

3) Make IPv4 the default (authbind does not currently support IPv6).
   To do so, create the file TOMCAT/bin/setenv.sh with the following content: 

   CATALINA_OPTS="-Djava.net.preferIPv4Stack=true"

4) Change /usr/share/tomcat7/bin/startup.sh

  exec authbind --deep "$PRGDIR"/"$EXECUTABLE" start "$@"
  # OLD: exec "$PRGDIR"/"$EXECUTABLE" start "$@"

Si ya tienes un setenv.sharchivo en /usr/share/tomcat7/bincon CATALINA_OPTS, usted tiene que utilizar:

export CATALINA_OPTS="$CATALINA_OPTS -Djava.net.preferIPv4Stack=true"

Ahora puede cambiar el puerto a 80como se indica en otras respuestas.

smonff
fuente
2
Agregaría
@ConMan actualizó las rutas, esa es una gran idea para guardar otras búsquedas. Admito que conocer este lugar no es obvio al principio.
smonff
1
Gracias, esto funcionó muy bien, estoy acostumbrado a centos, por lo que esto fue útil para mí, donde esto no fue un problema para mí.
med116
1
Acabo de seguir esto hoy en 14.04, el paquete authbind que se incluye con él ahora es compatible con IPv6, por lo que ya no es necesario lo de IPv4.
Jason Faust
También lo hice: chmod 755 /usr/share/tomcat7/bin/setenv.sh
Casey Harrils el
5

En Linux moderno, el mejor enfoque (para mí) es usar xinetd:

1) crear /etc/xinet.d/tomcat-http

service http
{
        disable = no
        socket_type = stream
        user = root
        wait = no
        redirect = 127.0.0.1 8080
}

2) crea /etc/xinet.d/tomcat-https

service https
{
        disable = no
        socket_type = stream
        user = root
        wait = no
        redirect = 127.0.0.1 8443
}

3) chkconfig xinetd en

4) /etc/init.d/xinetd start

cgdave
fuente
Otro enfoque es compilar y usar jsvc, pero xinetd es definitivamente más fácil
cgdave
5

Si alguien está buscando, cómo cambiar el número de puerto de tomcat en el usuario Eclipse IDE a continuación se detallan los pasos.

1.En la vista Servidores, haga doble clic en el nombre del servidor: ingrese la descripción de la imagen aquí

2.Eso abrirá una página de configuración para Tomcat de la siguiente manera: ingrese la descripción de la imagen aquí

3. Observe que los números de puerto se muestran en la tabla de la derecha. Haga clic para editar, por ejemplo: ingrese la descripción de la imagen aquí

4. Eso cambiará el número de puerto para HTTP de 8080 a 80. Presione Ctrl + S para guardar el cambio y reiniciar el servidor. Podemos detectar el cambio del número de puerto en la vista Consola: ingrese la descripción de la imagen aquí

Todo este contenido se tomó del enlace a continuación, consulte ese enlace para obtener más información, gracias. http://www.codejava.net/servers/tomcat/how-to-change-port-numbers-for-tomcat-in-eclipse

Shanaka Kuruwita
fuente
4

Ejecutar el siguiente comando funcionó con. Intenté cambiar server.xmly el archivo conf pero ambos no funcionaron.

/sbin/iptables -A INPUT -i eth0 -p tcp --dport 80 -j ACCEPT

/sbin/iptables -A INPUT -i eth0 -p tcp --dport 8080 -j ACCEPT

/sbin/iptables -A PREROUTING -t nat -i eth0 -p tcp --dport 80 -j REDIRECT --to-port 8080
Naeem Iqbal
fuente
3

En un servidor Linux, puede usar estos comandos para reconfigurar Tomcat para escuchar en el puerto 80:

sed -i 's|port="8080"|port="80"|g' /etc/tomcat?/server.xml
sed -i 's|#AUTHBIND=no|AUTHBIND=yes|g' /etc/default/tomcat?
service tomcat8 restart
panticz
fuente
2

si está utilizando eclipse y modificar server.xml no funciona para usted, intente con el siguiente artículo ... tienen pasos para modificar el puerto si está utilizando IDE como eclipse.

usuario3461044
fuente
1

Simplemente vaya a la carpeta conf de tomcat

abra el archivo server.xml

Ir a uno de los nodos del conector que se parece a lo siguiente

<Connector port="8080" protocol="HTTP/1.1" 
           connectionTimeout="20000" 
           redirectPort="8443" />

Simplemente cambie el puerto

guardar y reiniciar tomcat

ravi ranjan
fuente
1
Solo en Windows, ¿no?
smonff
1

Aquí están los pasos:

-> Siga la ruta: {directorio tomcat> / conf -> Encuentre esta línea:

<Connector port="8080" protocol="HTTP/1.1" connectionTimeout="20000" redirectPort="8443" />

cambie el número de puerto de "8080" a "80".

-> Guardar el archivo.

-> Reiniciar el servidor :)

Madhusudan
fuente
0

No olvides editar el archivo. Abrir archivo /etc/default/tomcat7y cambiar

#AUTHBIND=no

a

AUTHBIND=yes

luego reiniciar.

Patrikoko
fuente