Nazwa hosta do hosta lokalnego z portem - OSX [zamknięte]

14

Próbuję uruchomić wiele Node.jsserwerów WWW lokalnie na moim komputerze.

Ponieważ kod, który piszę, musi odwoływać się do nazwy domeny, chciałbym zachować konwencję dev.myHost.comi wskazać na usługę inną niż port-80 działającą z Węzła (technicznie uruchamiam jedną z nich Harp.ji jedną z nich Sails.js).

  • Więc dev.hostOne.compowinienem wskazaćlocalhost:123
  • i dev.hostTwo.compowinien wskazywaćlocalhost:456

czy to możliwe? Jeśli tak to jak.

mondo
źródło

Odpowiedzi:

23

Z mojego zrozumienia wynika, że ​​używasz tylko jednej lokalnej maszyny deweloperskiej, co oznacza, że ​​nie jest podłączony do żadnej sieci, która zapewnia DNS.

Jeśli mam rację, proponuję skonfigurować takie rzeczy, jak opisano poniżej:

krok 1: Przypisz co najmniej dwa adresy IP do swojego MAC OS (jeden na domenę), powiedzmy:

192.168.0.10
192.168.0.11

Aby skonfigurować drugi adres IP, musisz dodać drugi adapter Ethernet (logiczny, a nie fizyczny).

Krok 2: Ponieważ nie masz serwera DNS, możesz skonfigurować /etc/hostsplik, dodając:

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

Krok 3: Przypisz aliasy do interfejsu pętli zwrotnej:

sudo ifconfig lo0 192.168.0.10 alias
sudo ifconfig lo0 192.168.0.11 alias

Krok 4: Konfiguracja ipfwprzekazywania pakietów:

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

Gotowe!

Teraz :

wprowadź opis zdjęcia tutaj wprowadź opis zdjęcia tutaj


Skonfigurowałem dwa Node.jsserwery internetowe do przetestowania twojego przypadku:

$ 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

Ważne: należy pamiętać, że ipfwreguły i aliasy interfejsu sprzężenia zwrotnego nie są trwałe i nie będą już istnieć po ponownym uruchomieniu. Rozważ więc dodanie skryptu uruchamiania.

krisFR
źródło
1
Pracował PIĘKNIE. Właśnie tego chciałem.
mondo
1
Cieszę się, że to działa! byłem całkiem pewien, że nie był to całkowicie „duplikat”;)
krisFR 10'14
na Mac OS Sierra uzyskiwanie sudo: ipfw: nie znaleziono polecenia
ClintM
3
@ClintM: ipfwzostał zastąpiony przez pfctl. Na przykład, jak otworzyć port: gauravsohoni.wordpress.com/2015/04/14/mac-osx-open-port
Joe Atzberger
Byłoby naprawdę miło zaktualizować odpowiedź w oczekiwanym formacie pfctl.
Simon