自宅オフィス環境で、1 つのパブリック IP でポート 80 上の Web サーバーなど複数のサーバーを実行できるようにするには、ルーター / ゲートウェイ / ファイアウォールを取得するには何を探すべきかを教えていただけますか。サーバー コンピューターで Apache または IIS を使用して実行できることは知っています。Cisco または Netgear ルーターですか?
例えば:
ホスト1.example.com:80 -> 192.168.0.101
ホスト2.example.com:80 -> 192.168.0.102
答え1
Openwrt は apache/squid をうまくサポートしています。リバース プロキシにも apache を使用しました。必要なのは、openwrt 互換のルーターだけです。
次に、この特別なプロキシ動作方法では、Apache (Apache をお勧めします) を設定する必要があります。見た目ほど難しくはありません。必要に応じて、この投稿にいくつかの設定例をコピーして貼り付けます。
このようなプロキシに必要な CPU については、あまり問題はありません。ほとんどのルーターの CPU はそれほど強力ではありません。なぜなら、このようなハードウェア/ソフトウェア構成が行うことは、実際にはパケットを転送することだけではないからです。PHP 解釈や JVM のような CPU を大量に消費するものはなく、Apache はスレッド モードで「ワーカー」MPM を使用して実行できるため、非常に高速です。
答え2
ルーターは通常、サーバーを実行しません。OpenWRT および DD-Wrt ベースのルーターは、十分なメモリがあればこの機能を提供できます。これは、これらのルーターが Linux カーネルを実行しているためです。Web サーバー機能は、Apache や Squid などの Web サーバーまたはプロキシを実行することによって実現されます。
複数の小規模なサイトをサーバーとして運用する場合は、Rasberry Pi などのデバイスを使用して Web サイトを実行できる場合があります。さらに容量が必要な場合は、Linux を実行する小規模なサーバーでファイアウォールと Web サーバーの両方の機能を実現できます。私は、Web サーバーとファイアウォールの両方として Linux を実行する 2 つ目のネットワーク カードを備えたリサイクルされたデスクトップ システムから始めました。
この分離は Web サーバーで行います。主要な Web サーバーは、Host ヘッダーに基づいてコンテンツの配信を処理します。Apache Web サーバーでは、この機能を VirtualHosts と呼びます。ホストのトラフィックの一部またはすべてを 2 番目のサーバーにプロキシすることが可能です。
マルチドメイン HTTPS は、証明書がホスト名に関連付けられているため、より困難です。ドメインが関連している場合は、マルチドメイン証明書またはワイルドカード証明書が機能します。一部のサーバーは、証明書を提供する前にホスト名のネゴシエーションを処理できますが、これを正常に実装したことはありません。
ルーターで HTTP リクエストを Web サーバーに転送する必要があります。ほとんどのルーターは、ポートまたは DMZ アドレスでこの機能を提供します。