複数の仮想ホストで外部IPを共有する

複数の仮想ホストで外部IPを共有する

いくつかの LAMP 仮想マシン (VirtualBox を使用) をホストしている CentOS サーバーの場合、外部 IP は 1 つしかありません。この単一のホスト外部 IP を使用して仮想マシンをアドレス指定できるようにしたいと思います。外部から特定のマシンにポートを転送するなど:

2.2.2.2 > external IP [WAN]
10.0.0.1 > host IP (tiger) [LAN]
10.0.0.2 > virtual client #1 (zebra)
10.0.0.3 > virtual client #1 (mouse)

したがって、外部 IP はルーター経由でホスト IP (tiger) に転送され、ポートを確認して zebra または mouse に送信されます。両方の仮想クライアントは、Apache などに同じポートを使用していない可能性があります (使用すべきではありません)。

ルーター自体にはアクセスできないため、ルーティング ソリューションはホストで実行することをお勧めします (ただし、管理者が実行できる場合は、特定の設定を要求できます)

分かりやすくなったと思います。

答え1

2.2.2.2の異なるポートを異なる仮想マシンにルーティングしたいだけなら、次のようにすれば可能です。iptablesを参照してくださいCentOS ガイド詳細については、ルールを永続的にする方法(iptables次回の再起動まで設定のみが変更されます)。ポート 13080 の着信 TCP 要求をポート 80 の 10.0.0.1 に送信するには、次のようにします。

iptables -t nat -A PREROUTING -p tcp --dport 13080 -j DNAT --to 10.0.0.1:80

HTTPリクエストのホスト名に応じてVMを選択する場合は、ディスパッチャとして機能するHTTPサーバーが必要です。Apacheを使用することもできますが、このような高速で単純なタスクでは、エンギンクス人気があります。

関連情報