Posso mapear um nome de host * e * uma porta com / etc / hosts? [fechadas]

189

Posso mapear um endereço IP como 127.0.0.1um nome de domínio e uma porta?

Por exemplo, eu gostaria de mapear 127.0.0.1paraapi.example.com:8000

Carson
fonte
6
Você não pode mapear o número da porta em / etc / hosts. Em vez disso, você pode definir como 127.0.0.1 api.mydomain.come acessá-lo no navegador comoapi.mydomain.com:8080
Fizer Khan
Eu li em algum lugar que o DNS suporta isso. Você pode ter um registro que diz em www.example.com http está na porta 80 e também um registro A para dizer que o endereço é 127.0.0.1, mas também disse que não era bem suportado. Não falou muito depois disso.
Ctrl-alt-delor 5/02

Respostas:

184

Não, isso não é possível. A porta não faz parte do nome do host, portanto, não tem significado no hostsarquivo-

mata
fonte
134

Se você realmente precisar fazer isso, use o proxy reverso.

Por exemplo, com nginx como proxy reverso

server {
  listen       api.mydomain.com:80;
  server_name  api.mydomain.com;
  location / {
    proxy_pass http://127.0.0.1:8000;
  }
}
Eric Fortis
fonte
4
Eu acho que a linha de proxy_pass deve ficar assim: proxy_pass http://127.0.0.1:8000;Eu tenho "prefixo de URL inválido" no nginx 1.4.3.
Nobu
obrigado por esta dica maravilhosa! solução simples para a maioria dos servidores.
Micahscopes
Estou usando esse truque para mapear portas de uma máquina remota (por exemplo, cloud.app:80 enquanto a porta real é 8080). Muito útil para testar nós Confluence de um cluster, mas acessá-los na mesma URL base. Obrigado!
Gábor Nagy
9
Eu tinha basicamente o mesmo problema e a solução usando esse proxy reverso é realmente útil. Embora, eu queria alguma solução mais simples, então eu fiz esta ferramenta: github.com/cristianoliveira/ergo Espero que ajuda em alguma maneira :)
Cristian Oliveira
Obrigado @CristianOliveira! Isso me ajudou muito :)
brunetton