Tomcat7 se une al puerto 80 falla en Ubuntu 14.04LTS
port80 ubuntu-14.04 (4)
Deje el puerto 8080 de forma predeterminada en server.xml
Ejecutar: sudo / sbin / iptables -t nat -I PREROUTING -p tcp --dport 80 -j REDIRECT - to-port 8080
ES Esto redirige el tráfico del puerto 80 al 8080 (predeterminado en tomcat) en Ubuntu 14.04. No es posible establecer el puerto predeterminado en 80 en server.xml.
FR (Ceci redirige le trafic du port 80 vers 8080 (Par défaut dans tomcat) dans Ubuntu 14.04 il n''est pas possible de mettre le puerto par défaut à 80 dans server.xml.)
Para que esto sea persistente: sudo apt-get install iptables-persistent
ES Este paquete le permite guardar las reglas de iptables previamente ingresadas. Asegúrese de responder que sí (guarde la configuración actual). FR Ce paquete permet de sauvegarder les règles iptables entrées précédemment. Il faut répondre ou aux questions, (sauvegarder les paramètres actuels).
Tengo un problema con mi instalación de tomcat7 en un sistema Ubuntu recientemente actualizado. Desde la actualización a 14.04 LTS, tomcat se niega a iniciar en el puerto 80 con un error que no puedo resolver, ni encuentra nada sobre cómo solucionarlo:
Information: Initializing ProtocolHandler ["http-bio-80"]
Apr 24, 2014 4:39:37 PM org.apache.coyote.AbstractProtocol init
Schwerwiegend: Failed to initialize end point associated with ProtocolHandler ["http-bio-80"]
java.net.SocketException: Datei oder Verzeichnis nicht gefunden
at java.net.PlainSocketImpl.socketBind(Native Method)
at java.net.AbstractPlainSocketImpl.bind(AbstractPlainSocketImpl.java:376)
at java.net.ServerSocket.bind(ServerSocket.java:376)
at java.net.ServerSocket.<init>(ServerSocket.java:237)
at java.net.ServerSocket.<init>(ServerSocket.java:181)
at org.apache.tomcat.util.net.DefaultServerSocketFactory.createSocket(DefaultServerSocketFactory.java:49)
at org.apache.tomcat.util.net.JIoEndpoint.bind(JIoEndpoint.java:397)
at org.apache.tomcat.util.net.AbstractEndpoint.init(AbstractEndpoint.java:640)
at org.apache.coyote.AbstractProtocol.init(AbstractProtocol.java:434)
at org.apache.coyote.http11.AbstractHttp11JsseProtocol.init(AbstractHttp11JsseProtocol.java:119)
at org.apache.catalina.connector.Connector.initInternal(Connector.java:978)
at org.apache.catalina.util.LifecycleBase.init(LifecycleBase.java:102)
at org.apache.catalina.core.StandardService.initInternal(StandardService.java:559)
at org.apache.catalina.util.LifecycleBase.init(LifecycleBase.java:102)
at org.apache.catalina.core.StandardServer.initInternal(StandardServer.java:813)
at org.apache.catalina.util.LifecycleBase.init(LifecycleBase.java:102)
at org.apache.catalina.startup.Catalina.load(Catalina.java:638)
at org.apache.catalina.startup.Catalina.load(Catalina.java:663)
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:57)
at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
at java.lang.reflect.Method.invoke(Method.java:606)
at org.apache.catalina.startup.Bootstrap.load(Bootstrap.java:280)
at org.apache.catalina.startup.Bootstrap.main(Bootstrap.java:454)
El caso es que hice exactamente lo que hice en Ubuntus anterior (corría 12.04 LTS), en resumen, edité server.xml en el puerto 80 y también cambié authbind en / etc / default / tomcat7 a yes, entonces básicamente todo lo que tienes que hacer para ejecutar tomcat en el puerto 80.
Hacer esos pasos en un 12.04LTS funciona bien, solo en el 14.04LTS ahora arroja este error de "archivo o directorio no encontrado".
Además, al actualizar un 12.04LTS (en el que tomcat funciona bien en el puerto 80) a 14.04LTS, de repente arroja el error anterior, mientras que todas las configuraciones son idénticas a las que funcionaron en 12.04LTS.
Espero que alguien pueda ayudarme a solucionar este problema.
Inicie los servicios de tomcat utilizando authbind, esto le permitirá al usuario iniciar puertos de menos de 1024 que no necesitamos redirigir o iptables.
apt-get install authbind -y
Para instalar el software Authbind
chmod -R 755 / etc / authbind
grupo debe ser grupo de usuarios.
chown -Rh root: group / etc / authbind
Después de eso ejecuta los comandos a continuación
cd / etc / authbind / byuid
Como ejemplo, permite que el ID de usuario de imagne sea 2000, puedes usar tu número de identificación de usuario
echo ''0.0.0.0/0:1,1023''> 2000
Ese archivo debe ser propio por usuario y grupo.
chown: 2000
chmod 700 2000
Agregue la siguiente línea en el archivo de inicio de tomcat $ CATALINA_BASE / startup.sh
export JAVA_OPTS="$JAVA_OPTS -Djava.net.preferIPv4Stack=true"
Para iniciar Tomcat utilizando el servicio Authbind startup.sh
Comenta la siguiente línea
#$CATALINA_HOME/bin/startup.sh
Agregar este final como el final del archivo
AUTHBIND_COMMAND="/usr/bin/authbind --deep /bin/bash -c "
$AUTHBIND_COMMAND $CATALINA_HOME/bin/startup.sh
ahora debería poder iniciar los servicios de tomcat como usuario con menos de 1024 puertos.
Los siguientes trabajos:
apt-get install authbind
Primero, configure AUTHBIND=yes
en el /etc/default/tomcat7
sudo touch /etc/authbind/byport/80
sudo chmod 500 /etc/authbind/byport/80
sudo chown tomcat7 /etc/authbind/byport/80
Había una URL de referencia aquí, pero el sitio web ha sido pirateado (marcado como inseguro en Edge, y Chrome me pide que instale una extensión de navegador).
Yo tuve el mismo problema. Al final, utilicé una redirección de puerto iptables en lugar del mecanismo authpriv
es decir
1) en / etc / default / tomcat7, establezca authpriv = no
2) en /etc/tomcat7/server.xml, use
<Connector port=8080... en lugar de 80
3) ufw permite 8080 / tcp
4) siga las instrucciones aquí: https://serverfault.com/questions/238563/can-i-use-ufw-to-setup-a-port-forward
Lo mismo se puede hacer para el puerto 443 (SSL) si es necesario