[実装機能]
1. 3台のサーバーを設定します
2. 同じサービスコードを3台のサーバーにそれぞれデプロイします
3. 利用します負荷分散を実現する nginx
#[実装のアイデア]
私たちの nginx ロード バランサーは対話型サーバーにデプロイされ、他の 2 つのサーバー接続で構成され、すべてのリクエストが直接行われます。 nginx サービス インターフェイスにアクセスすると、nginx ロード バランサーが実際の呼び出しサーバー ポートを選択します。【開発・展開環境】
開発環境:Windows 7 x64 sp1 英語版 Visualstudio 2017展開環境: Alibaba Cloud ecs インスタンス Windows Server 2012 x64 iis 7.0[必要なテクノロジー]
asp.net webapi2[実装プロセス]
asp.net webapi2 を使用して、単に json を返すインターフェイスを作成します。異なるサーバー上のインターフェイスを呼び出していることを示すために、デジタル形式で 3 つのインターフェイスを生成します。それぞれ 3 つのサーバー上の iis にデプロイされます。public ihttpactionresult gettest() { //throw new exception_dg_internationalization(1001); string ip = request.getipaddressfromrequest(); return ok("test api . client ip address is -> "+ip+" the server is ===== 333 ====="); }デプロイした 3 つのサーバーの後ろの番号は 111、222、および 333注: return ok は私がカスタマイズした戻り形式です。特定の単純なコードの場合は、直接 json() を返すことができます;request.getipaddressfromrequest(); は IP アドレス取得の拡張メソッドですので、状況に応じて実装してください。
[システム テスト]
3 つのバックグラウンド コードを生成した後、それらを 3 つのサーバーにそれぞれ展開します。 サーバー情報の機密性を保つため、以下のすべての IP アドレスは ip_a、ip_b、ip_c によって識別されます3 番目のサーバーは、nginx をデプロイするサーバーです: デプロイ後、nginx を構成します: nginx をダウンロードします: 次に、それを ip_c サーバーに解凍し、conf フォルダー内の nginx.conf を開きます。 内容を次のように編集します
次に、サービスを開始します。 cmd コマンドは、nginx のルート ディレクトリに切り替えます
## このように、サービスが開始されても... 単なるクレームです。サービスが正常に開始されたことを通知しないのはどうでしょうか... まあ、それは人道的ではありません!
次に、任意のインターフェイス テスト ツールを開き、同じリクエストを 3 回実行します:
Request 1、リクエスト 2、
リクエスト 3、
それこれにより、多数の顧客が同じサーバー アドレスにアクセスした場合に、1 台のサーバーの負荷が複数のサーバーに割り当てられ、負荷が分散されます。目的。
以上がNginx負荷分散構成例の分析の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。