2012-09-17 19 views
11

Primero, solo quiero ver que no es la configuración del grupo de seguridad en la consola ec2. porque puedo configurar Apache, que es por error 80 port, y poder visitar el sitio web apache a través de 80 port. pero para tomcat funciona si uso el puerto 8080 (por defecto) o algunos valores mayores que 1023 (creo que este puerto). pero cuando cambio server.xml (cambiando 8080 a 80) no puede funcionar si uso 80 port, comienzo el servicio con éxito, pero no hay 80/http escuchando. Sé que deberían ser algunos problemas de privilegios (solo la raíz puede iniciar el servicio por debajo del puerto 1023). pero no sabía cómo hacerlo.Linux en EC2 (Amazon) no puede usar el puerto 80 para tomcat

+0

posible duplicado de [Linux en EC2 no puede usar el puerto 80 para tomcat pero el puerto 80 está bien para apache] (http://stackoverflow.com/questions/12464888/linux-in-ec2-cannot-use-port-80 -for-tomcat-but-port-80-is-ok-for-apache) –

Respuesta

1

Una forma común de configurar Tomcat para ejecutar en un puerto con privilegios en Linux es usar authbind. Puede encontrar instrucciones de configuración detalladas para Ubuntu y Amazon Linux here.

25

Mi elección personal para este problema es usar iptables para redirigir todo el tráfico desde el puerto 80 al puerto superior (por ejemplo, 8080) en el que se está ejecutando Tomcat.

/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 
+0

Esta es la respuesta correcta. Simplemente redirige el tráfico a través del puerto 80 a 8080 sin poner restricciones al tráfico saliente. Algunas secuencias de comandos iptables como esta bloquean la salida http debido a problemas de seguridad, pero eso hace que sea muy difícil en este día y edad actualizar su servidor. – chubbsondubs

+0

El artículo ["Cat in the Cloud"] (http://www.excelsior-usa.com/articles/tomcat-amazon-ec2-advanced.html) describe varias sugerencias y, a partir de 2012, parecen preferir ' iptables' también. – amos

2

La forma en que lo hice anteriormente fue utilizar Apache2 como un proxy utilizando hosts virtuales y proxy en Tomcat. esto manejará las solicitudes y luego también se puede usar como equilibrador de carga si en el futuro decide utilizar múltiples Tomcats para el equilibrio de carga.

Cuestiones relacionadas