.net core 跨平臺開發 微服務架構 基於Nginx反向代理 服務集羣負載均衡

  1、概述
  反向代理(Reverse Proxy)方式是指以代理服務器來接受internet上的連接請求,然後將請求轉發給內部網絡上的服務器,並將從服務器上得到的結果返回給internet上請求連接的客戶端,此時代理服務器對外就表現爲一個服務器。

  服務器集羣就是指將很多服務器集中起來一起進行同一種服務,在客戶端看來就像是隻有一個服務器。集羣可以利用多個計算機進行並行計算從而獲得很高的計算速度,也可以用多個計算機做備份,從而使得任何一個機器壞了整個系統還是能正常運行。

  負載均衡,英文名稱爲Load Balance,其含義就是指將負載(工作任務)進行平衡、分攤到多個操作單元上進行運行,例如FTP服務器、Web服務器、企業核心應用服務器和其它主要任務服務器等,從而協同完成工作任務。負載均衡構建在原有網絡結構之上,它提供了一種透明且廉價有效的方法擴展服務器和網絡設備的帶寬、加強網絡數據處理能力、增加吞吐量、提高網絡的可用性和靈活性。

  Nginx是一款輕量級的Web 服務器/反向代理服務器及電子郵件(IMAP/POP3)代理服務器,在BSD-like 協議下發行。Nginx是由伊戈爾·賽索耶夫爲俄羅斯訪問量第二的Rambler.ru站點(俄文:Рамблер)開發的,第一個公開版本0.1.0發佈於2004年10月4日。

  下面我將創建.net core weapi 服務,然後使用同一服務程序源碼,配置啓動5177,5178,5179 三個不同端口的服務程序,作爲服務集羣,然後下載安裝配置Nginx程序,反向代理服務集羣,通過訪問Nginx服務器,跳轉訪問由三個服務程序的服務集羣。

  2、創建.net core webapi 微服務
  本人使用Visual Studio 2019 .net core 3.1 的開發環境。
  2.1、創建.net core webapi 服務項目

  

  2.2、創建Default api 控制器

  

  2.3、增加Get方法,返回配置信息。

using System;
using System.Collections.Generic;
using System.Linq;
using System.Threading.Tasks;
using Microsoft.AspNetCore.Http;
using Microsoft.AspNetCore.Mvc;
using Microsoft.Extensions.Configuration;
using Microsoft.Extensions.Logging;

namespace WebApp.Controllers
{
    [Route("api/[controller]")]
    [ApiController]
    public class DefaultController : ControllerBase
    {
        private readonly ILogger<DefaultController> _logger;
        private readonly 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
            };
            return this.Ok(result);
        }
    }
}

 

  2.4、使用控制檯命令啓動,同一服務程序源碼,配置 5177,5178,5179三個不同端口,組建三個的服務應用集羣。
  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,下載解壓後,配置Nginx服務器監聽本地服務器,8080端口。

 

 

  啓動Nginx服務器程序:start nginx.exe,正常啓動後,我們就可以在瀏覽器上訪問Nginx的歡迎首頁:

  Nginx服務器正常後,我們開發配置Nginx反射代理5177,5178,5179三個服務程序,當我們訪問http://localhost:8080,程序將跳轉5177或5178或5179服務程序。


  至此,就這麼簡單,我們就實現了.net core 基於Nginx反向代理,服務集羣負載均衡。有不當之處,歡迎指正。

 

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章