zoukankan      html  css  js  c++  java
  • 记录使用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 装一个代码的插件。谢谢。

  • 相关阅读:
    通过实验窥探javascript的解析执行顺序
    HTML5实战与剖析之原生拖拽(四可拖动dragable属性和其他成员)
    Google Guava之Optional优雅的使用null
    sharding-jdbc源码学习(一)简介
    重构——改善既有代码的设计
    spring自定义标签
    java自定义注解
    开源项目集合
    Lombok引入简化Java代码
    设计模式之建造者模式
  • 原文地址:https://www.cnblogs.com/bninp/p/5443267.html
Copyright © 2011-2022 走看看