8 votos

¿Cómo hacer que una URL apunte a una instancia de Tomcat?

Perdona si esta pregunta no tiene sentido (no soy un experto), pero tengo entendido que tomcat escucha el puerto 8080 y que las url suelen estar dirigidas al 80. ¿Hay alguna forma de decirle a DNS que las urls deben apuntar al 8080? ¿O cómo puedo resolver este problema?

0 votos

0 votos

Creo que este artículo explica cómo se puede utilizar SRV para especificar un puerto . Sin embargo, parece que un puerto URI se toma como prioridad sobre el puerto asignado por el DNS. Según tengo entendido, los navegadores web añaden automáticamente el puerto 80 a la dirección, lo que podría explicar por qué no he conseguido que este enfoque funcione.

8voto

katit Puntos 130

El DNS no sabe nada de los puertos. Si quieres que tomcat escuche en el puerto 8080 tienes un par de opciones. La primera es usar el número de puerto en la URL

http://example.com:8080/

Si no te gusta el aspecto de eso, entonces puedes usar tu servidor web como un proxy de puertos, por ejemplo, en Apache puedes usar el mod _ proxy

<VirtualHost *:80>
        ServerName      example.com
        ProxyRequests Off
        <Proxy *>
                Order deny,allow
                allow from all
        </Proxy>
        ProxyPreserveHost On
        ProxyPass / http://example.com:8080/
        ProxyPassReverse / http://example.com:8080/
        ProxyErrorOverride Off
</VirtualHost>

0 votos

¿Qué pasa si tienes otro host escuchando en el puerto 80? Tengo 2 servidores en una sola máquina (necesaria en este caso) pero quiero ocultar el número de puerto en la URL aunque sea el que está escuchando el tráfico hacia ese servidor web.

0 votos

@JayBlanchard No entiendo muy bien tu comentario y no me extenderé más allá de decir que leas la documentación sobre hosts virtuales basados en nombres y mod_proxy.

2voto

mailq Puntos 13433

Esto se hace mediante http://the.site.invaild:8080/ .

No es posible dar un puerto en el DNS. El DNS sólo asigna nombres a IPs. Pero no puertos.

2voto

Carlos Puntos 642

Creo que lo mejor es hacer que tu tomcat escuche el puerto 80.Puedes hacerlo si no hay ningún otro servidor que escuche el puerto 80.Para ello puedes editar el server.xml

Cambia lo siguiente,

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

Ahora puedes probar http://example.com/.This porque el puerto por defecto de http es el 80.

0 votos

He probado tu ejemplo pero no me funciona

2voto

Subito Puntos 188

Podría haber una posibilidad de resolver esto a través de DNS: SRV-Records

Con los SRV-Records básicamente le dices al DNS que responda a una pregunta como "¿dónde está el httpd de ejemplo.org? Y el DNS responde con una dirección IP y un número de puerto.

Aunque no sé si los clientes solicitan esta información o si el navegador simplemente hace una búsqueda de A-Record y solicita el sitio web desde la IP dada usando el puerto 80, esto podría valer la pena probarlo si quieres hacerlo con DNS.

De lo contrario: Deje que Tomcat escuche el puerto 80 o redirija el 8080 a Tomcat a través del mod_proxy de Apache.

0 votos

Los navegadores comunes aún no tienen soporte para la búsqueda de registros SRV - ver homepage.ntlworld.com/jonathan.deboynepollard/FGA/ y la discusión aquí .

EnMiMaquinaFunciona.com

EnMiMaquinaFunciona es una comunidad de administradores de sistemas en la que puedes resolver tus problemas y dudas.
Puedes consultar las preguntas de otros sysadmin, hacer tus propias preguntas o resolver las de los demás.

Powered by: