Puis-je mapper un nom d'hôte * et * un port avec / etc / hosts? [fermé]

195

Puis-je mapper une adresse IP comme 127.0.0.1un nom de domaine et un port?

Par exemple, je voudrais mapper 127.0.0.1versapi.example.com:8000

Carson
la source
6
Vous ne pouvez pas mapper le numéro de port dans / etc / hosts. Au lieu de cela, vous pouvez définir comme 127.0.0.1 api.mydomain.comet y accéder dans le navigateur commeapi.mydomain.com:8080
Fizer Khan
J'ai lu quelque part que DNS prend en charge cela. Vous pouvez avoir un enregistrement qui dit sur www.example.com http est sur le port 80 et aussi un enregistrement A pour dire que l'adresse est 127.0.0.1 il a également dit qu'il n'était pas bien pris en charge. Cela n'a pas dit grand-chose après cela.
ctrl-alt-delor

Réponses:

195

Non, ce n'est pas possible. Le port ne fait pas partie du nom d'hôte, il n'a donc aucune signification dans le hosts-file.

mata
la source
143

Si vous avez vraiment besoin de faire cela, utilisez un proxy inverse.

Par exemple, avec nginx comme proxy inverse

server {
  listen       api.mydomain.com:80;
  server_name  api.mydomain.com;
  location / {
    proxy_pass http://127.0.0.1:8000;
  }
}
Eric Fortis
la source
4
Je pense que la ligne de proxy_pass devrait ressembler à ceci: proxy_pass http://127.0.0.1:8000;j'ai un "préfixe d'URL invalide" sur nginx 1.4.3.
Nobu
merci pour cette merveilleuse astuce! solution simple pour la plupart des serveurs.
micahscopes
J'utilise cette astuce pour mapper les ports d'une machine distante (par exemple cloud.app:80 alors que le port réel est 8080). Très utile pour tester les nœuds Confluence d'un cluster mais y accéder sur la même URL de base. Merci!
Gábor Nagy
10
J'ai eu fondamentalement le même problème et la solution utilisant ce proxy inverse est vraiment utile. Bien que je voulais une solution plus simple, j'ai donc créé cet outil: github.com/cristianoliveira/ergo J'espère que cela aidera d'une manière ou d'une autre :)
Cristian Oliveira
Merci @CristianOliveira! Cela m'a beaucoup aidé :)
Bruno Duyé