Cómo redirigir el tráfico en el puerto 80 al puerto 8080 de Tomcat mientras que todavía permite que el servidor envíe / reciba en el puerto 80

Tengo una aplicación web que se ejecuta en una caja de Linux con Tomcat6.

Tengo el reenvío del puerto de la disposición para que cualquier petición en el puerto 80 consiga reorientado al puerto 8080 que trabaja muy bien.

El problema que tengo es que la aplicación web hace llamadas a la API usando HTTP (en el puerto 80), por lo que no puede enviar solicitudes o recibir solicitudes porque todo está dirigido a la aplicación web en el puerto 8080.

¿Hay alguna manera de permitir que el servidor envíe / reciba en el puerto 80, pero los anfitriones externos (es decir, los usuarios de la aplicación web) que se conectan al servidor se dirigen a 8080.

Gracias

Usted puede ser capaz de utilizar ProxyPass y ProxyPassReverse para proxy algunos url a 8080, y no hacer el reenvío de puertos.

Deshazte del reenvío de puertos y crea un archivo en /etc/httpd/conf.d (asumiendo redhat basado en linux distro con apache):

ProxyPass /myapp/ http://localhost:8080/ ProxyPassReverse /myapp/ http://localhost:8080/ 

También puede poner ruta después de la línea http arriba si es necesario.

Esto básicamente configura un proxy inverso, así que cualquier cosa que coincida con las entradas {, Reverse} de ProxyPass irá a localhost: 8080, todo lo demás será servido por la instancia local de apache.

Obviamente, si usted tiene una distro diferente o os o servidor web, lo anterior tendría que ser alterado, pero el concepto es el mismo.