.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反向代理,服务集群负载均衡。有不当之处,欢迎指正。

原文地址:https://www.cnblogs.com/henxiao25/p/12686624.html

时间: 2024-10-26 00:08:48

.net core 跨平台开发 微服务架构 基于Nginx反向代理 服务集群负载均衡的相关文章

基于Nginx反向代理及负载均衡

基于Nginx反向代理及负载均衡 参考:http://nginx.org/en/docs/http/ngx_http_proxy_module.html#proxy_pass 只要没有被启用,默认就是开启的,因为proxy属于nginx内置标准模块,通常实现代理的时候,最核心模块是proxy_pass,用于将用户请求的rui递交至上游服务器的某个URI但这个模块大部分用于location当中,因此要实现将某一URI的访问代理某个上游服务器大致的格式为: location /name/ { pro

一种改进的red5集群方案的应用、基于Red5服务器集群负载均衡调度算法研究

转自: 一种改进的red5集群方案的应用: http://wenku.baidu.com/link?url=jYQ1wNwHVBqJ-5XCYq0PRligp6Y5q6BYXyISUsF56My8DP8dc9CZ4pZvpPz1abxJn8fojMrL0IyfmMHStpvkotqC1RWlRMGnzVL1X4IPOa_ 基于Red5服务器集群负载均衡调度算法研究 http://www.doc88.com/p-0456863461331.html

实验:基于nginx反向代理的lnamp搭建WordPress,并实现动静分离

一.实验环境: 1.各软件版本: 系统版本:CentOS Linux release 7.4.1708 (Core) php版本:PHP 7.2 nginx版本:nginx-1.12.2 数据库版本:MariaDB 10 WordPress版本:4.9.4 关闭防火墙与selinux 2.实验架构及IP分配: nginx反向代理一台: IP:192.168.1.105 10.66.16.111安装nginx nginx WEB服务器一台 IP:10.66.16.11 安装nginx Apache

3-1-企业级架构拓展思路及集群负载均衡场景介绍

单主机不仅受限于硬件性能也受限于并发模型,select()1024scale up向上扩展,用性能更好的主机代替性能略差的主机scale out向外扩展,多加主机,分割任务,将任务分散处理,这叫做负载均衡集群load blancing cluster,简称为LB集群第一步:分散用户请求第二步:追踪用户请求状态信息,这是一个问题第三步:用户上传文件的路径在哪?使用共享存储或者专用户专机专用存储(其他用户就看不见本用户上传的文件了),要有两种共享存储,一种存图片,一种存数据(数据库) 补充知识:数据

Docker + Consul + registrator实现服务发现及nginx反向代理

一. 架构设计 在现实中,我们一直渴望着追求提供高质量.高可用的服务架构体系,同时减少不必要的部署和维护代价,减少容错率.面对如此高的要求,可以有两种架构方案:Docker+Etcd+Confd+NginxDocker+Consul+Nginx本文中我们主要来介绍 Docker+Etcd+Confd+Nginx方案,此方案更加高效.快捷,并且维护代价和容错率更低,分布式支持力度更强,如下图所示: 上面示意图的大概流程如下:1.docker01主机上以二进制包的方式部署consul服务并后台运行,

Consul+Registrator+Docker实现服务发现(nginx反向代理)

环境准备: consul:高可用,分布式的服务发现的工具 master主机-docker01:172.16.1.30 node01主机-docker02:172.16.1.31node02主机-docker03:172.16.1.32 注意:因为是测试环境,所以暂时关闭防火墙,禁用selinux,如果是对外网发布的服务器,是不可以关闭防火墙,可以设置iptables规则. 项目操作: (1)docker01上部署consul:下载或上传consul_1.5.1_linux_amd64软件包: [

群集架构篇 ?——nginx反向代理+keepalived双机热备+tomcat服务器池+后端数据库

首先准备好两台nginx,两台tomcat,一台mysql数据库,如下NginxIP地址:192.168.20.39(lvs01)192.168.20.40(lvs02)漂移地址:192.168.20.66TomcatIP地址:192.168.20.41(TM01)192.168.20.42(TM02)MysqlIP地址:192.168.20.50 =====================192.168.20.39(lvs01)=======================vi /usr/lo

windows+nginx+iis+redis+Task.MainForm构建分布式架构 之 (nginx+iis构建服务集群)

本次要分享的是利用windows+nginx+iis+redis+Task.MainForm组建分布式架构,由标题就能看出此内容不是一篇分享文章能说完的,所以我打算分几篇分享文章来讲解,一步一步实现分布式架构:下面将先给出整个架构的核心节点简介,希望各位多多点赞: . 架构设计图展示 . nginx+iis构建服务集群 . redis存储分布式共享的session及共享session运作流程 . redis主从配置及Sentinel管理多个Redis集群 . 定时框架Task.MainForm提

基于Keepalived构建高可用集群配置实例(HA Cluster)

什么是集群 简单的讲集群(cluster)就是一组计算机,它们作为一个整体向用户提供一组网络资源.这些单个的计算机系统就是集群的节点(node).一个理想的集群是,用户从来不会意识到集群系统底层的节点,在他/她们看来,集群是一个系统,而非多个计算机系统.并且集群系统的管理员可以随意增加和删改集群系统的节点. 关于更详细的高可用集群我们在后面再做详解,先来说说Keepalived Keepalived是什么 Keepalived是集群管理中保证集群高可用的一个服务软件,其功能类似于heartbea