2台以上のWebサーバーが1つの静的IPを共有する

2台以上のWebサーバーが1つの静的IPを共有する

ISP から静的 IP を 1 つ取得しました。ドメイン名を WAN IP に向ける NS (NS プロバイダーから) を 2 つ取得しました。質問: server1.domainname.td をネットワーク内のサーバー 1 に接続し、server2.domainname.td をローカル ネットワーク
(server1 =192.168.1.2、server2=192.168.1.3) 上のサーバー 2 に接続するにはどうすればよいですか。両方ともポート 80 のみを使用します (ポート転送なし) (server1=ms win server2=Linux) 2 番目の質問: ネットワーク外 (インターネット上の別の静的 IP) にあるサーバー上の server3.domainname.td に接続するにはどうすればよいでしょうか。

答え1

IPアドレスが1つしかない場合(つまりポートが1つしかない場合80443リバースプロキシのようにnginxリクエストを適切な内部サーバーに転送します。

パブリック アドレスを指すDNSAレコードを追加する必要があります。server1.example.comserver2.example.com

nginx良いルーターがあれば、ゲートウェイ上でサーバーが稼働している可能性があります。オープンWrtファームウェアまたはプロキシ機能を備えたプロフェッショナル ルーター。それ以外の場合は、内部サーバーの 1 つを使用して、ルーターから内部サーバーへのポート転送を設定する必要があります。

設定方法に関するチュートリアルはオンラインでたくさんありますリバースプロキシとしての nginx

この構成は遅く、失敗しやすくなることに注意してください。プロフェッショナルな展開には、外部の Web ホスティングを使用してください。

答え2

ウェブ トラフィック (ポート 443 またはポート 80) のみに関心がある場合は、他の人が提案しているように、nginx を使用してください。非常に軽量です。私もこれを使用しています。

Linux の場合、/etc/nginx にネットワーク用のファイル (例: proxy.conf) を作成します。

server {
    listen       80;
    server_name  server1.domainname.td;

    location / {
        proxy_set_header X-Real-IP $remote_addr;
        proxy_set_header Host $host;
        proxy_pass http://localhost:8085;
    }
}

このスタンザをファイル (たとえば、route.conf) に作成し、/etc/nginx (Linux を想定) の下に配置します。目的に応じて必要な数のスタンザを追加します。/etc/nginx/nginx.conf に、以下を含めます。

include /etc/nginx/route.conf  (do this before the closing bracket)

server3 については、proxy_pass をホスト名または IP に変更します。

proxy_pass http://youroutsideserver ..

アップデート: Piotr が指摘したように、route.conf ファイルを /etc/nginx/sites-available に配置し、sites-enabled ディレクトリにシンボリックリンクを張ります。

ln -s /etc/nginx/sites-available/router.conf /etc/nginx/sites-enabled

関連情報