Je souhaite configurer le fichier d' hôtes Windows pour envoyer des demandes d'hôtes en fonction de l'adresse IP + des ports.
Par exemple:
127.0.0.1:80 www.site1.com
127.0.0.1:8080 www.sitetwo.com
Parce que j'écoute Apache sur le port 8080 et IIS sur le port 80 (par défaut).
Donc, je pense que la meilleure façon de le faire est de modifier le hosts
fichier. Cela n'affecte rien. Je ne reçois ni erreur ni message.
iis
apache-2.2
Peter Mortensen
la source
la source
Réponses:
Tu ne peux pas. Le fichier hosts n'est que cela - hosts. C'est l'équivalent d'un DNS "court-circuité" au sein de votre machine locale. DNS ne peut pas non plus vous envoyer vers des ports.
Pour réaliser ce que vous essayez de faire, vous souhaitez configurer l'hébergement virtuel sous IIS ou Apache, et l'utiliser (en fonction de l'en-tête HTTP Host:) pour laisser le service décider du site à présenter. Cela ne vous aidera pas, cependant, si vous voulez faire cela avec IIS et Apache simultanément.
la source
hosts
fichier est uniquement destiné à la résolution du nom d'hôte<hostname>:<port>
, par défaut au port80
Scénario de problème typique
127.0.0.1
aliaslocalhost
(définie dans le fichier hosts) .pour éviter la collision entre d'autres serveurs existants ou en cours d'exécution, l'application vous permet généralement de modifier le port, mais pas l'adresse IP.
2a. Si vous pouviez changer l'adresse IP des serveurs en une autre dans l' espace d'adressage réservé au bouclage
127.0.0.0/8
, alors vous n'essaieriez probablement pas de définir des ports dans le fichier hosts.Solution possible
Vous pouvez contourner ce problème en utilisant l' outil de mise en réseau inclus Windows
netsh
comme proxy de port.Aperçu
Actions
localhost:8081
127.65.43.21 example.app
127.0.0.0/8
peut être utilisée.127.65.43.21:80
n'est pas occupé par un autre service.netstat -a -n -p TCP | grep "LISTENING"
netsh interface portproxy add v4tov4 listenport=80 listenaddress=127.65.43.21 connectport=8081 connectaddress=127.0.0.1
http://example.app
Remarques:
- Ces commandes / modifications de fichiers doivent être exécutées avec les droits d'administrateur
- netsh portproxy a besoin des bibliothèques ipv6 même uniquement pour utiliser v4tov4, généralement elles seront également incluses 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ée 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 les ressources:
Remarque: cette réponse est une duplication de ma réponse discutée dans cette question / réponse similaire sur stackoverflow.
la source
Non, tu ne peux pas. Si cela ne fonctionne pas, alors quelque chose d'autre ne va pas.
Je suppose que c'est pour une boîte de développement?
DNS résoudra site.com et www.site.com en localhost tant que vous ne faites pas quelque chose comme le proxy de vos requêtes DNS. Vous devriez probablement demander à ServerFault de l'aide pour la configuration du serveur Web, c'est le problème le plus probable.
la source
Vous pouvez le faire avec Fiddler . Avec le script Fiddler , vous pouvez faire beaucoup de choses incroyables.
Si vous définissez des hôtes comme celui-ci
Ajoutez ceci dans CustomRules.js (pour ouvrir CustomRules.js , choisissez Personnaliser les règles dans le menu Règles de Fiddler )
Ensuite, Fiddler convertit l'hôte et vous vous connecterez au port 8080.
la source
Utilisez-vous les serveurs uniquement pour le développement local? Si c'est le cas, vous pouvez mettre votre Apache à écouter 127.0.0.2:80 et le rediriger avec le fichier hosts vers le nom de domaine que vous aimez.
la source
Comme avec les autres réponses, le fichier hôte n'a pas d'informations sur le port, mais vous pouvez avoir une page qui redirige biaisée sur l'en-tête comme Apache ou IIS ferait pour l'hébergement virtuel basé sur le nom. Vérifiez l'en-tête et redirigez si nécessaire. Cependant, je ne vois pas vraiment la valeur de cela car vous réinventez la roue. Apache prend en charge l'hébergement virtuel basé sur les ports et je suppose que iis le fait.
Votre objectif est d'avoir une machine de développement avec les deux en cours d'exécution est-ce pour une situation de production.
la source
Suivez ces étapes:
/programming/8652948/using-port-number-on-windows-xp-host-file
la source
C'est ce que vous pouvez faire, cela ne serait utile que pour le développement local.
fichier hôtes:
Dans IIS, créez un nouveau site Web et pour local.site1.com et local.site2.com
Configuration d'IIS
Tu es prêt. Assurez-vous simplement que les ports que vous avez utilisés ne sont pas utilisés par un autre processus et sont également ouverts à partir d'un pare-feu, d'un antivirus, etc.
Après cela, vous pouvez utiliser les URL suivantes pour accéder aux sites Web à partir d'une machine locale ou d'un LAN.
la source