• Linux 使用nginx实现netcore项目的负载均衡


    上篇文章Linux通过nginx反向代理net core项目中已经在服务器A上使用nginx代理了netcore项目,这里再增加一台服务器,叫做B服务器,部署同样的代码(我们这里对某个页面稍加改动,主要便于看负载的效果),使用nginx实现负载均衡。

    一、B服务器部署netcore项目

    部署的过程可以参考Linux-Centos8.3 部署net core项目。这里简单的说下:

    上传发布的netcore项目,如何上传可以参考:Linux远程连接及上传文件

    !!!!!重点说明:为了便于效果演示,这里稍加修改下项目,将其中页面中的“文档”两个字改为“文档(服务器B)”

     启动netcore项目:

    dotnet HyWebSocketServer.dll

    我们服务器B上部署的项目,看下效果:

     B服务器上的项目启动后,开始在A服务器上配置nginx了

    二、Nginx负载均衡配置

    如果想了解负载均衡的知识体系可以参考另一篇博客:负载均衡

    通过Xshell打开服务器A

     进入nginx的配置目录:

    cd /usr/local/nginx/conf

    对文件进行编辑:

    vim nginx.conf

     

    使用 nginx 中的 upstream模块 来实现nginx将跨越单机的限制,完成网络数据的接收、处理和转发。我们主要使用提到的转发功能进行调度分发。定义的 upstream 模块名称是 wsServer,这里配置了两个IP端口,到时候nginx就往这两个服务器上分发。修改一下配置,在如下图的server的平级添加如下的代码:

    upstream wsServer{
         server localhost:9000 ;
         server 服务器B的公网IP:9000;
    }

    server ip:port后面可以加参数,比如:

    • down 表示当前的server临时不参与负载.
    • weight 是权重,weight越大,负载的权重就越大。
    • backup: 其他全部的非backup机器宕机或者忙的时候,请求backup机器。所以这台机器压力会最轻

    我们这里使用nginx默认的策略,即轮询法。

    修改完成,输入:wq退出并保存,最后检查并重启nginx

    /usr/local/nginx/sbin/nginx -t
    /usr/local/nginx/sbin/nginx -s reload

     

    三、负载的效果展示

    多次发送请求会出现下面的响应:

     

     看到上面两个截图,就说明配置成功了。

  • 相关阅读:
    决定搬家
    Deklarit3.0的确不错,推荐一下。
    [Linux] 安装samba
    如何远程连接非默认端口SQL Server
    [c#] for和foreach
    svn linux客户端安装
    [c#] HttpContext.Cache和AppFabric的性能对比
    [ms sql server]计算今天是第几周
    ajax readyState的五种状态详解
    清空sql server日志
  • 原文地址:https://www.cnblogs.com/qtiger/p/14717411.html
Copyright © 2020-2023  润新知