• 记录使用Redis和nginx 实现一个简单的负载均衡(FB)


    这两年在博客园看了不少大牛的分享,一直打算能写点什么东西。 之前偶然看见一个利用Redis 当作 Session数据宿主的demo,出处我已经找不到了。后来没事看了看nginx相关的东西。其中负载均衡在多站点的Session同步是需要解决的一个问题。所以就想试试将二者结合使用的效果。当然得写个demo

    添加RedisSessionProvider相关

    1H4]~Z8MD)D9`B(OO6TU7IV

    添加之后会自动生成web.config 相关设置模板

    M@%JPIKZW}`1UH(MXSHDOOJ

    然后 把host 设为本地ip 127.0.0.1  accessKey 设为 Redis端口 默认的设为 6379

    ssl 改为false

    然后测试一下

     {T3MB6A0OCU3B_A2M4_FBDS

    然后退出IIS Express 再重新打开一次 时间没变 OK。

    然后是nginx 负载均衡部分

      我们把之前的例子丰富一下。

     

    public partial class demo : System.Web.UI.Page 
      { 
          public bool IsLogin { get; private set; } 
          /// <summary> 
          /// 将session 数据宿主设置为redis 
          /// </summary> 
          /// <param name="sender"></param> 
          /// <param name="e"></param> 
          protected void Page_Load(object sender, EventArgs e) 
          { 
              if (!IsPostBack) { 
                  IsLogin = Session["user"] != null; 
                  if (Session["record"] == null) { 
                      Session["record"] = DateTime.Now;
    
                    
                  } 
               
                 // Session.Timeout = 1; 
                  Response.Write(Session.SessionID); 
                  Response.Write(Session["record"]); 
              } 
          }
    
          protected void Button1_Click(object sender, EventArgs e) 
          { 
              Session["user"] = "tanzhaoyao"; 
              IsLogin = true; 
          } 
      }

     

    页面显示代码

     

    <div> 
           <%if(IsLogin){ %> 
           <h1><%=Session["user"].ToString() %></h1> 
           <%}else{ %>
    
           <asp:Button ID="Button1" OnClick="Button1_Click" runat="server" Text="Login" /> 
           <%} %> 
       </div>

    然后将这个项目文件复制一份 发布成2个站点  在其中一个加上标记来验证nginx 是否起到了作用

     W5ZWV1%C]ARWVCRCL5C4UUN

    然后让我们来配置一下nginx 并且试图启动它

    _B_$[8[~}Y2DL4UV~}AH]A9

    )@U8IC[A8[58@DB~JZGZ$}0

    然后测试一下效果

    nologin

    第一个图片多了nginx标志 说明 nginx 起到作用,而且多刷新几次会发现是平均分配的

    然后模拟一下登陆,看看效果

    logined

    大功告成

    第一次写博客,排版不怎么会、组织得也比较凌乱。如果有人不幸看到,请谅解。后续会不断修改一下来锻炼自己写博客的能力。效果展示也会找一个录制gif的工具和给这个该死的Open live writer 装一个代码的插件。谢谢。

  • 相关阅读:
    OpenID Connect 验证
    升级到 .NET Core 3.1
    深入 .NET Core 基础
    依赖注入在 dotnet core 中实现与使用:3 使用 Lazy<T> 延迟实例化
    依赖注入在 dotnet core 中实现与使用:2 使用 Extensions DependencyInjection
    依赖注入在 dotnet core 中实现与使用:1 基本概念
    ng-bootstrap 组件集中 tabset 组件的实现分析
    一笔百亿美元军方订单,引发了美国科技公司大混战
    4种事务的隔离级别,InnoDB怎样巧妙实现?
    Google I/O 官方应用中的动效设计
  • 原文地址:https://www.cnblogs.com/bninp/p/5443267.html
Copyright © 2020-2023  润新知