web-dev-qa-db-fra.com

Nom d'hôte à localhost avec Port - OSX

J'essaie de courir plusieurs Node.js Serveurs Web localement sur ma machine.

Parce que le code que j'écris doit faire référence à un nom de domaine que j'aimerais conserver une convention de dev.myHost.com et pointez cela au service non-Port-80 en cours d'exécution de Node (techniquement, j'exécute une sur Harp.js et un sur Sails.js).

  • Donc dev.hostOne.com devrait pointer sur localhost:123
  • et dev.hostTwo.com devrait pointer sur localhost:456

Est-ce possible? Si c'est le cas, comment.

15
mondo

De ma compréhension, il semble que vous utilisiez uniquement une machine de développement locale, des moyens non connectés à un réseau qui fournit un DNS.

Si j'ai raison, je suggérerais de configurer des choses comme décrites ci-dessous:

Étape 1 : Attribuez au moins deux adresses IP à votre Mac OS (un par domaine), disons:

192.168.0.10
192.168.0.11

Pour configurer la deuxième adresse IP, vous devrez ajouter un deuxième adaptateur Ethernet (logique non physique).

Étape 2 : Comme vous n'avez pas de serveur DNS, vous pouvez configurer votre /etc/hosts Fichier, en ajoutant:

192.168.0.10     dev.hostone.com
192.168.0.11     dev.hosttwo.com

Étape 3 : Attribuez des alias à votre interface de bouclage:

Sudo ifconfig lo0 192.168.0.10 alias
Sudo ifconfig lo0 192.168.0.11 alias

Étape 4 : SETUP ipfw pour transmettre des paquets:

Sudo ipfw add fwd 127.0.0.1,123 tcp from me to 192.168.0.10 dst-port 80
Sudo ipfw add fwd 127.0.0.1,456 tcp from me to 192.168.0.11 dst-port 80

Vous avez terminé !

Maintenant :

enter image description hereenter image description here


J'ai mis en place deux Node.js serveurs Web pour tester votre cas:

$ netstat -anp tcp | grep -E "123|456"
tcp4    0    0  127.0.0.1:123    *.*    LISTEN
tcp4    0    0  127.0.0.1:456    *.*    LISTEN

IMPORTANT : Notez que ipfw Règles et alias d'interface de bouclage ne sont pas persistants et n'existeront plus après un redémarrage. Alors, envisagez d'ajouter un script de démarrage.

24
krisFR