自分のマシンでローカルに複数のNode.js
Webサーバーを実行しようとしています。
私が書いているコードは、ドメイン名を参照する必要があるので、dev.myHost.com
の規則を維持し、それをNode (技術的にはHarp.j
sで1つとSails.js
で1つ実行しています)。
dev.hostOne.com
はlocalhost:123
を指す必要がありますdev.hostTwo.com
はlocalhost:456
を指す必要がありますこれは可能ですか?もしそうなら、どのように。
私の理解では、ローカルの開発マシンを1つだけ使用しているようです。つまり、DNSを提供するネットワークに接続されていません。
私が正しい場合は、以下のように設定することをお勧めします:
ステップ1:MAC OSに少なくとも2つのIPアドレスを割り当てます(ドメインごとに1つ)。
192.168.0.10
192.168.0.11
2番目のIPをセットアップするには、2番目のイーサネットアダプター(物理ではなく論理)を追加する必要があります。
ステップ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
にリダイレクトします私はあなたのケースをテストするために2つの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
ルールとループバックインターフェイスエイリアスは永続的ではなく、再起動後は存在しないことに注意してください。したがって、起動スクリプトを追加することを検討してください。