Я пытаюсь запустить несколько Node.js
веб-серверы локально на моей машине.
Поскольку код, который я пишу, должен ссылаться на доменное имя, я хотел бы сохранить соглашение о dev.myHost.com
и укажите это на службу без порта 80, работающую с узла (технически я запускаю один на Harp.j
s и один на Sails.js
).
dev.hostOne.com
должен указывать на localhost:123
dev.hostTwo.com
должен указывать на localhost:456
Это возможно? Если да, то как.
Насколько я понимаю, кажется, что вы используете только одну локальную машину разработчика, то есть не подключены к какой-либо сети, которая предоставляет DNS.
Если я прав, я бы предложил настроить такие вещи, как описано ниже:
шаг 1 : Назначьте как минимум два IP-адреса для вашей MAC OS (по одному на домен), скажем:
192.168.0.10
192.168.0.11
Чтобы настроить второй IP-адрес, вам необходимо добавить второй адаптер Ethernet (логический, а не физический).
Шаг 2 : Поскольку у вас нет DNS-сервера, вы можете настроить свой /etc/hosts
файл, добавив:
192.168.0.10 dev.hostone.com
192.168.0.11 dev.hosttwo.com
Шаг 3 : Назначьте псевдонимы вашему интерфейсу обратной связи:
sudo ifconfig lo0 192.168.0.10 alias
sudo ifconfig lo0 192.168.0.11 alias
Шаг 4: Настроить ipfw
для пересылки пакетов:
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
Вы сделали !
Сейчас :
localhost:123
localhost:456
Я установил два Node.js
веб-серверы для проверки вашего случая:
$ 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
Важный : Обратите внимание, что ipfw
правила и псевдонимы интерфейса обратной связи не являются постоянными и больше не будут существовать после перезагрузки. Поэтому подумайте о добавлении сценария запуска.