J'y suis parvenu en utilisant Windows inclus Outil de mise en réseau netsh
.
Comme le souligne Mat : Le fichier hosts sert uniquement à la résolution des noms d'hôtes, donc une combinaison des deux a fait l'affaire pour moi.
Example
Vue d'ensemble
example.app:80
| <--Link by Hosts File
+--> 127.65.43.21:80
| <--Link by netsh Utility
+--> localhost:8081
Actions
- J'ai démarré mon serveur le
localhost:8081
- J'ai ajouté mon "DNS local" dans le fichier d'hôtes comme une nouvelle ligne
-
127.65.43.21 example.app
- Toute adresse libre dans le réseau
127.0.0.0/8
( 127.x.x.x
) peuvent être utilisés.
-
Note : Je suppose que
127.65.43.21:80
n'est pas occupé par un autre service.
- Vous pouvez vérifier auprès de
netstat -a -n -p TCP | grep "LISTENING"
- a ajouté la configuration réseau suivante avec commande netsh utilitaire
netsh interface portproxy add v4tov4 listenport=80 listenaddress=127.65.43.21 connectport=8081 connectaddress=127.0.0.1
- Je peux maintenant accéder au serveur à l'adresse
http://example.app
Notes :
- Ces commandes/modifications de fichiers doivent être exécutées avec Droits d'administration
- netsh portproxy needs ipv6 libraries même seulement pour utiliser v4tov4, typiquement ils seront aussi inclus par défaut, sinon installez-les en utilisant la commande suivante : netsh interface ipv6 install
Vous pouvez voir l'entrée que vous avez ajouté avec la commande :
netsh interface portproxy show v4tov4
Vous pouvez supprimer l'entrée avec la commande suivante :
netsh interface portproxy delete v4tov4 listenport=80 listenaddress=127.65.43.21
Liens vers des ressources :
0 votes
Vous avez besoin d'un serveur HTTP NGNIX ou Apache comme serveur proxy pour transmettre les demandes http à l'application appropriée -> qui écoute un port particulier (ou le faire avec CNAME qui fournit la société d'hébergement).
1 votes
httpd.apache.org/docs/trunk/vhosts/exemples.html nginx.com/resources/wiki/start/topics/examples/server_blocks
0 votes
Peut-être revoir cela et changer la réponse acceptée par la réponse netsh ? J'ai atterri ici en essayant de comprendre comment mapper des domaines .test à mes images docker localement sur Windows 10, et la réponse netsh a fonctionné à merveille !
0 votes
La question est la suivante : essayez-vous de rediriger un hôte entier vers un seul port ( ?!) ou seulement le port 80 (de cet hôte) vers le port 8080 ? La plupart des réponses ici concernent la manière de rediriger (ou du moins d'essayer de rediriger...;-) le port 80 d'un hôte vers le port 8080 de votre "localhost". Exemple :
https://www.example.com
doit aller au port 8080 ? ou au 443 par défaut ? (comme il se doit) Ce qui signifie : voulez-vous qu'un https soit aussi redirigé vers le port 8080 de votre localhost ? Ou vous ne vous souciez pas du tout de savoir où il sera redirigé ?