java - liberar - ¿Por qué trabaja Tomcat con el puerto 8080 pero no con 80?
liberar puerto 8080 (7)
¿Inició Tomcat en el puerto 80 como root? Tienes que ser root para enlazar a los puertos <= 1024 en Linux.
He iniciado y probado Tomcat en el puerto 8080 (predeterminado). Ahora modifiqué el puerto del conector a 80 y reinicié Tomcat, nada se mostrará en mi instalación mínima de Debian 6.0. Ahora, ¿dónde está el truco aquí?
<Connector port="80" protocol="HTTP/1.1"
connectionTimeout="20000"
URIEncoding="UTF-8"
redirectPort="8443" />
Detenga el servicio de Apache y luego ejecute Tomcat. Debería estar bien. De forma predeterminada, Apache se ejecuta en el puerto 80.
Dos razones típicas:
- Es posible que no tenga permiso para escuchar un puerto inferior a 1024 (por lo general, requiere privilegios administrativos, por ejemplo, ser
root
) - Es posible que algo más ya esté escuchando en el puerto 80 (por ejemplo, apache)
Ejecute su script de inicio como root después de cambiar el enlace.
sudo ./<path to tomcat bin director>/startup.sh
Puede usar authbind / privbind o capacidades para enlazar al puerto 80.
Si nada de lo comentado anteriormente funciona (como me pasó a mí), puede dirigir el tráfico desde el puerto 80
al 8080
.
Para hacerlo:
http://forum.slicehost.com/index.php?p=/discussion/2497/iptables-redirect-port-80-to-port-8080/p1
En pocas palabras, escriba estos tres comandos en un terminal:
$ sudo iptables -A INPUT -i eth0 -p tcp --dport 80 -j ACCEPT
$ sudo iptables -A INPUT -i eth0 -p tcp --dport 8080 -j ACCEPT
$ sudo iptables -A PREROUTING -t nat -i eth0 -p tcp --dport 80 -j REDIRECT --to-port 8080
vaya a / etc / default / tomcat6 y cambie #AUTHBIND=no
a AUTHBIND=yes
# If you run Tomcat on port numbers that are all higher than 1023, then you
# do not need authbind. It is used for binding Tomcat to lower port numbers.
# NOTE: authbind works only with IPv4. Do not enable it when using IPv6.
# (yes/no, default: no)
#AUTHBIND=no