サーバー/クライアントモデルをサーバー/サーバーモデルに変えようとしています。これにより、プログラムを実行している2台のコンピューターがおそらくURLまたはIPアドレスなどでお互いを見つけられるようになります.それが可能かどうか疑問に思っていました. URL経由で接続する2つのサーバー。それともipが唯一の方法ですか?これは私のC ++を書く2日目なので、例をいただければ幸いです。
1 に答える
HTTP の場合、サーバーはクライアントとのみ通信します。したがって、サーバーからサーバーへの意味がわかりません。
URL を使用して HTTP サーバーにアクセスすることは問題ありませんが、ネットワーク接続を実際に確立する前に、ホスト名を IP アドレスに解決する必要があります。これらの詳細を行うライブラリを見つけることができるはずですが、HTTP サーバーへのソケット接続を手動で確立することは難しくありません。
複数のサーバーがあり、単一のサーバーとして機能する構成があります。これらは、Web ファームまたは HTTP クラスターと呼ばれることもあります。通常、クラスターの前にある種のロード バランサーがあります。多くの HTTP ロード バランサーはサーバー アフィニティ機能をサポートしており、後続の操作のためにクライアントがクラスター内の同じサーバーに送信されるようにします。
クラスタ構成では、サーバーは、ファイル システム データや構成データなどの共有状態を同期する必要がある場合があります。これは通常、HTTP サーバー プロセス自体の外部にあるメカニズムによって処理されます。HTTP サーバー プロセスは同期と連携する必要がある場合がありますが、これはプロセスの再起動と同じくらい簡単です。
リバース プロキシ構成と呼ばれる HTTP サーバー構成の別のモードがあります。HTTP プロキシ サーバーのクラスターは、単一の HTTP サーバーの前に配置されます。プロキシ サーバーは、HTTP サーバー自体から作業をオフロードする安価で消耗品であると考えられており、HTTP サーバーの容量を増やすためのスケーラブルな手段を提供します。
実装方法の例として、多くのオープン ソース HTTP サーバーおよびプロキシ プロジェクトが利用可能です。独自のカスタム サーバー アプリケーションを構築しようとしている場合は、Boost asioの HTTP の例を参照できます。