Nginxリバースプロキシサービスクラスターロードバランシングに基づく.netコアクロスプラットフォーム開発マイクロサービスアーキテクチャ

  1.概要
  リバースプロキシ(Reverse Proxy)は、プロキシサーバーを使用してインターネット上の接続要求を受け入れ、その要求を内部ネットワーク上のサーバーに転送し、サーバーから取得した結果をインターネットに返して接続を要求することを意味しますクライアント、プロキシサーバーは外部からサーバーとして表示されます。

  サーバークラスタリングは、同じサービスを実行するために多くのサーバーを1つにまとめることを意味し、クライアントにはサーバーが1つしかないように見えます。クラスターは複数のコンピューターを使用して並列計算を実行し、高い計算速度を取得できます。また、複数のコンピューターをバックアップに使用できるため、1台のマシンが故障してもシステム全体は正常に動作できます。

  負荷分散。英語の名前はLoad Balanceです。これは、負荷(作業タスク)が分散され、FTPサーバー、Webサーバー、エンタープライズコアアプリケーションサーバー、その他の主要なタスクサーバーなど、実行する複数のオペレーティングユニットに分散されることを意味します。共同で作業タスクを完了するように。負荷分散は元のネットワーク構造に基づいて構築されており、サーバーとネットワークデバイスの帯域幅を拡張し、ネットワークデータ処理機能を強化し、スループットを向上させ、ネットワークの可用性と柔軟性を向上させる透過的で安価で効果的な方法を提供します。

  Nginxは、軽量のWebサーバー/リバースプロキシサーバーおよび電子メール(IMAP / POP3)プロキシサーバーで、BSDのようなプロトコルでリリースされています。Nginxは、Igor Sesoyevによって、ロシアで2番目にアクセス数の多いRambler.ruサイト(ロシア語:Рамблер)のために開発されました。最初の公開バージョン0.1.0は、2004年10月4日にリリースされました。

  以下では、.netコアweapiサービスを作成し、同じサービスプログラムソースコードを使用して、3つの異なるポート5177、5178、5179のサービスプログラムをサービスクラスターとして構成および開始し、次にNginxプログラム、リバースプロキシサービスクラスターをダウンロードしてインストールします。 Nginxサーバーにアクセスし、3つのサービスプログラムで構成されるサービスクラスターにジャンプします。

  2. .netコアのwebapiマイクロサービス
  を作成します。VisualStudio 2019 .net core 3.1開発環境を使用しています。
  2.1。.netコアwebapiサービスプロジェクトを作成する

  

  2.2、デフォルトのAPIコントローラーを作成する

  

  2.3。設定情報を返すGetメソッドを追加します。

システムの使用;
System.Collections.Generic; を使用します。
System.Linq を使用します。
System.Threading.Tasks を使用します。
Microsoft.AspNetCore.Http を使用します。
Microsoft.AspNetCore.Mvc を使用します。
Microsoft.Extensions.Configuration を使用します。
Microsoft.Extensions.Logging を使用します。

名前空間WebApp.Controllers 
{ 
    [Route(" api / [controller] " )] 
    [ApiController] 
    public  class DefaultController:ControllerBase 
    { 
        private  readonly ILogger <DefaultController>_logger;
        プライベート 読み取り専用IConfiguration _configuration; 

        public DefaultController(ILogger <DefaultController> logger 
            、IConfiguration config)
        { 
            this ._logger = logger; 

            this ._configuration = config; 
        } 
        [HttpGet()] 
        public OkObjectResult Get()
        { 
            var result = new 
            { 
                id = this ._configuration [ " ip " ]、
                port = this._configuration [ " port " ]、
                now = DateTime.Now 
            }; 
            戻る この.Ok(結果を)。
        } 
    } 
}

 

  2.4。コンソールコマンドを使用して、同じサービスプログラムのソースコードを開始し、5177、5178、5179の3つの異なるポートを構成して、3つのサービスアプリケーションクラスターを形成します。
  dotnet webapp.dll --urls = "http:// *:5177" --ip = "127.0.0.1" --port = 5177
  dotnet webapp.dll --urls = "http:// *:5178"- ip = "127.0.0.1" --port = 5178
  dotnet webapp.dll --urls = "http:// *:5179" --ip = "127.0.0.1" --port = 5179


  3. Nginxをダウンロード、インストール、構成します。  ここではLinuxや仮想マシンは使用せず、Windowsにインストールして構成
します。ダウンロードアドレス:http://nginx.org/en/download.html。ダウンロードして解凍した後、ローカルサーバーのポート8080をリッスンするようにNginxサーバーを構成します。

 

 

  Nginxサーバープログラムを起動します。通常の起動後、nginx.exeを起動します。ブラウザーでNginxウェルカムホームページにアクセスできます。

  Nginxサーバーが正常になったら、Nginxリフレクションエージェント5177、5178、5179の3つのサービスプログラムを開発して構成します。http:// localhost:8080にアクセスすると、プログラムは5177または5178または5179サービスプログラムにジャンプします。


  これまでのところ、それは非常に簡単です。Nginxリバースプロキシ、サービスクラスターの負荷分散に基づいて.netコアを実装しました。何か問題があれば訂正してください。

 

おすすめ

転載: www.cnblogs.com/henxiao25/p/12686624.html