Esta é uma pergunta canônica sobre resolução de DNS / nomes de host para IPs / portas
Exemplo 1
Estou executando um servidor Web na porta 80 e outro na porta 87. Gostaria de usar o DNS para que www.example.com vá para a porta 87. Como fazer isso usando apenas o DNS?
Exemplo 2
Estou executando um serviço no meu servidor em uma porta não padrão. Como faço para que os clientes se conectem automaticamente a essa porta não padrão? Posso usar DNS? Existe algum suporte específico para aplicativos em que o DNS possa indicar o IP e a porta?
Exemplo 3
Alguns protocolos de aplicativos suportam especificamente o reconhecimento de nome de host e permitem que ações especiais sejam executadas com base nessas informações? Existem outras perguntas sobre falha no servidor que abordam algumas delas?
Commandeering:
Esta pergunta foi originalmente feita sobre a execução do IIS e Apache no mesmo servidor, mas os mesmos conceitos podem ser aplicados a qualquer software de servidor que receba conexões de clientes. As respostas abaixo descrevem os problemas técnicos e as soluções do uso de DNS e suporte ao protocolo de aplicativos para atribuir um número de porta para o cliente se conectar.
fonte
Respostas:
Você não pode usar o DNS para apontar para uma porta (a menos que o cliente suporte registros SRV, a maioria não suporta).
Sites e protocolos com cabeçalhos de host
Você precisará implementar algum método front-end para fazer isso. Normalmente, você usaria um servidor Web front-end ou um software proxy dedicado para encaminhar a conexão da porta 80 para a porta! 80 com base no nome do servidor solicitado no cabeçalho. Alguns firewalls também podem encaminhar com base no cabeçalho do host.
Registros SRV
Alguns clientes suportam pesquisas de registros SRV que indicam o nome do host e o número da porta do servidor para o serviço especificado (ou seja, o usuário especifica "example.com", o cliente consulta um registro SRV e obtém "server101.example.com" na porta "255 "; então se conecta a isso). Alguns clientes também implementam isso onde não é necessário (meu último smartphone pesquisaria os registros SRV ao configurar uma nova conta de email, por exemplo).
Infelizmente, o suporte para registros SRV é altamente incomum. Apenas alguns protocolos notáveis exigem seu suporte (Jabber / XMPP, Kerberos, LDAP, SIP) e nem todo cliente o suporta, mesmo quando exigido.
fonte
Quando você digita http://www.domain.com no seu navegador, entende-se que a porta HTTP está na 80. Portanto, não há maneira direta de direcionar www.domain.com para a porta 87 se você já tiver um serviço executando nessa porta no IIS.
Dito isto, existem algumas "soluções alternativas".
Sam está certo, o DNS é agnóstico quando se trata de portas. Qualquer tipo de redirecionamento de porta acontece pelo serviço que está sendo executado nessa porta. Portanto, você precisaria fazer algo com o IIS para que isso acontecesse, se você não tiver outra opção a não ser deixá-lo na porta 80.
Também resolvi a sua situação usando o mod_proxy no Apache, não tenho certeza se existe uma maneira de fazer isso com o IIS.
fonte
Receio que os nomes de domínio só possam ser associados a um endereço IP e não a uma porta.
A maioria dos servidores da Web, por exemplo (Apache, IIS etc.), permite que você tenha dois domínios hospedados no mesmo endereço IP usando o fato de que as solicitações da Web contêm um campo de cabeçalho de host que identifica o domínio na própria solicitação.
Se você disser qual é o servidor da Web que você está usando, tenho certeza de que as pessoas podem apontar para a documentação relevante para configurar seu servidor como desejar
fonte
Tecnicamente, você pode usar registros SRV em servidores DNS, conforme definido na RFC 2782, para informar aos navegadores quais servidores lidam com http em quais portas de um (sub-) domínio:
Isso funciona bem para muitos protocolos / serviços, especialmente onde o uso de registros SRV já está definido na especificação do protocolo.
No entanto, como afirma este " Hall of Shame ", a maioria dos navegadores / clientes da web não oferece suporte a isso (para HTTP). Veja também por que fazer navegadores não usar srv-records .
O acordo é basicamente que o SRV não é incluído no protocolo http como uma obrigação; portanto, todo navegador que o implementa resolve URLs de maneira diferente dos navegadores que não o fazem.
Portanto, você deve usar isso apenas como um balanceamento de carga opcional, onde não é relevante qual servidor é escolhido em termos de conteúdo. "Opcional" porque não equilibrará grande parte da carga se apenas alguns clientes implementarem isso.
fonte
O DNS não tem o recurso de redirecionar para uma porta específica; todos os DNS preocupam-se com a resolução do endereço IP de um nome e vice-versa.
Alguns serviços, como fornecedores de DNS IP dinâmico, como NO-IP, fornecem um serviço que pode ajudá-lo a fazer algo semelhante para contornar o bloqueio de IPs nos serviços DNS domésticos.
fonte
Para usar qualquer serviço (TBT) na porta não padrão e não gravar porta no URI, todos podem usar registros SRV, definidos na RFC 2782.
Todos os outros hosts http na zona ainda serão atendidos na porta padrão 80
fonte
A maneira mais simples é usar um proxy reverso e defini-lo como seu proxy da web. Você pode configurar um
nginx
ouapache
para ele. Eu tinha basicamente o mesmo problema no passado e fiz uma ferramenta para conseguir essa configuração de uma maneira simples. Ergo: https://github.com/cristianoliveira/ergoEu tenho usado isso e, basicamente, funciona como um encanto :)
fonte
Uma abordagem para implantar dois servidores Web no mesmo host é fazer com que ambos escutem na porta 80 em dois endereços IPv6 diferentes. O IPv6 especifica oficialmente que você pode atribuir dois endereços a uma interface e existem endereços IPv6 suficientes para fazer isso sem ficar sem endereços.
Isso é uma prova do futuro, e seus dois domínios podem ter registros AAAA apontando para os diferentes endereços IP, portanto, os domínios terminam em diferentes servidores da Web.
Se você também tiver um único endereço IPv4, poderá usar a porta 80 no endereço IPv4 para executar um proxy reverso. Dessa forma, clientes apenas IPv4 podem acessar os dois servidores da web. A abordagem do proxy reverso funciona mesmo se alguns servidores da web estiverem no mesmo host que o proxy reverso e alguns dos servidores da web estiverem em outros hosts.
Em tal configuração
example.org
poderia ter endereços192.0.2.1
e2001:db8::1
enquantoexample.net
tem endereços192.0.2.1
e2001:db8::2
.fonte