Como fazer um URL apontar para uma instância do Tomcat?

8

Desculpe se esta pergunta não faz sentido (nenhum especialista aqui), mas eu entendo que o tomcat ouve a porta 8080 e esse URL geralmente é endereçado a 80. Existe uma maneira de informar ao DNS que os URLs devem apontar para 8080? Ou como devo resolver esse problema?

Jérôme Verstrynge
fonte
possível duplicado de Direção DNS para diferentes portas
mailq
Eu acho que este artigo explica como SRV pode ser usado para especificar uma porta . No entanto, parece que uma porta URI é tomada como prioridade sobre a porta atribuída ao DNS. Pelo que entendi, os navegadores da Web adicionam automaticamente a porta 80 ao endereço, o que pode explicar por que não consegui fazer essa abordagem funcionar.
Andy2K11

Respostas:

8

O DNS não sabe nada sobre portas. Se você deseja que o tomcat escute na porta 8080, você tem algumas opções. A primeira é usar o número da porta no URL

http://example.com:8080/

Se você não gosta disso, use o servidor da Web como proxy de porta. Por exemplo, no Apache, você pode usar o 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>
user9517
fonte
E se você tiver outro host escutando na porta 80? Eu tenho 2 servidores em uma máquina (necessário neste caso), mas quero ocultar o número da porta na URL, mesmo que seja a que está ouvindo o tráfego desse servidor web.
Jay Blanchard
@ JayBlanchard Eu realmente não entendo seu comentário e não serei mais elaborado além de dizer ler a documentação sobre hosts virtuais baseados em nome e mod_proxy.
user9517
2

Isso é feito por http://the.site.invaild:8080/.

Não é possível dar uma porta no DNS. O DNS mapeia apenas nomes para IPs. Mas sem portas.

mailq
fonte
2

Eu acho que é melhor fazer o seu tomcat escutar a porta 80. Você pode fazer isso se não houver outro servidor escutando a porta 80.Para isso, você pode editar o server.xml

Mude da seguinte maneira,

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

Agora você pode tentar http://example.com/. Isso resolverá corretamente sua instância do tomcat. Porque a porta padrão do http é 80.

sunnychayen
fonte
Eu tentei você exemplo, mas ele não está funcionando para mim
Luffy
2

Pode haver uma possibilidade de resolver isso via DNS: SRV-Records

Com a SRV-Records, você basicamente diz ao DNS para responder a uma pergunta como "onde está o httpd do example.org"? E o DNS responde com um endereço IP E um número de porta.

Embora eu não saiba se os clientes solicitam essas informações ou se o navegador faz uma pesquisa A-Record e solicita o site a partir do IP fornecido usando a porta 80, vale a pena tentar se você quiser fazê-lo com DNS.

Caso contrário: deixe o éter Tomcat ouvir a porta 80 ou redirecionar 8080 para o Tomcat através do mod_proxy do Apache.

Subito
fonte
Os navegadores comuns ainda não têm suporte para pesquisas de registros SRV - consulte homepage.ntlworld.com/jonathan.deboynepollard/FGA/… e a discussão aqui .
the-wabbit