SLB负载均衡实践
一、 创建资源
- 创建两台ECS服务器实例和一个负载均衡实例
- 打开浏览器,在地址栏输入第一台服务器的弹性IP(公网IP)(此处为观察便利显示了后端服务器IP,正常情况下不会显示)
在另一个窗口输入第二台服务器的弹性IP(公网IP) - 通过观察可发现部署的网站内容相同,只是后台服务器IP不同(负载均衡的应用,在真实场景下,负载均衡后端的服务器中部署的应用都是一致的)
二、 负载均衡配置
将两台服务器挂载到负载均衡的后端,这样,用户只需访问一个IP地址或域名,负载均衡服务器将会根据权重自动转发用户请求到相应的后端服务器上。
- 点击左侧创建资源的一键复制url,用浏览器无痕窗口登录控制台,输入子用户名称和子用户密码,完成后点击 登录 ,登录阿里云管理控制台
- 点击左侧导航栏的 产品与服务 ,下拉菜单中,在 弹性计算条目下选择负载均衡
- 点击左侧的实例管理,然后选择刚刚创建的实例位置,在实例列表页面,点击目标实例右侧的点我开始配置
- 然后进入负载均衡业务配置向导,依次配置负载均衡的 监听端口、后端服务器 和 健康检查:
- 第一步,负载均衡协议,选HTTP,监听端口填80,高级配置保持默认,点下一步
- 第二步,监听请求转发至 默认服务器组,选择默认服务器组,在已添加服务器处点击 继续添加 。在弹出界面中勾选刚刚创建的两台服务器,点下一步,再点添加。回到刚刚后端服务器的列表,可以看到新增的两台云服务器,分别将 端口 设置为 80,并点击 下一步
- 第三步,开启健康检查按钮为绿色 开启状态,点击 下一步
- 第四步,在配置审核页面,确认所填配置都正确,点提交,提示配置成功后,点击知道了
- 第五步,页面显示一个状态为 运行中 的负载均衡监听实例,后端服务器组已添加完成两台ECS服务器,且 健康检查 的状态为 正常(需等待一分钟左右查看状态)
三、 负载均衡验证
- 验证负载均衡的工作原理
- 验证通过配置不同后端服务器权重,将用户的请求按比例分发到不同后端服务器
- 验证在一台后端服务器开启会话请求时,请求在会话开启的时间内只会分发到这一台服务器
- 此时,两台后端服务器的权重比例相同。通过如下步骤,验证负载均衡服务器是轮询访问后端云服务器ECS实例:
- 在控制台点击左侧 实例管理 ,在右侧页面中的红框处看到负载均衡的 服务地址(也就是 云产品资源 提供的 负载均衡 的 IP地址)
- 在浏览器中新建页面,并访问 负载均衡 的 服务地址 。界面显示的 后端服务器IP 为 第一台云服务器(或第二台云服务器) 的 内网地址
说明:界面显示的地址为内网地址,这是因为负载均衡访问后端ECS实例,是通过内网访问的。
- 刷新 浏览页面,显示的 后端服务器IP 将发生变化,变为 第二台云服务器(或 第一台云服务器)的 内网地址 ;
- 重复刷新操作,观察 后端服务器IP 是在两个云服务器的 内网地址 间轮流更换。
- 如上结果证明:负载均衡会将用户的请求发送到后端不同的服务器进行处理。这样,可以减轻单台服务器的负载压力,从而确保业务的持续性。
- 通过如下步骤,修改后端服务器权重,验证负载均衡向后端服务器发送请求的比例是按照权重的比例调整的。
- 返回 实例管理 页面,点击该实例的 默认服务器组 ;
- 选中 已添加的服务器 ,列表中,勾选勾选框 ,然后点击 修改权重 ;
- 弹出对话框中,勾选 设置不同的权重 。
- 设置两个实例的 权重 分别为 30 ,90 。
说明:通过如上的权重配置,用户通过负载均衡访问的时候,1/4 的用户请求发送到一台后端服务器中,3/4 的请求发送到另一台后端服务器中。
- 完成如上配置后,点击 确定 ,生效配置信息。
- 返回已添加的服务器的页面,查看到两台 ECS实例 的权重分别为 30 和 90 ,并记录对应的 ECS实例 内网地址
- 浏览器中,刷新多次负载均衡 服务地址 的页面,并记录页面显示的 后端服务器IP 。可以发现:每 4 次刷新,将有 3 次访问 权重 为 90 的 ECS实例,1 次访问权重为 30 的 ECS实例。
- 如上结果证明:用户可以根据实际情况调整负载均衡器的请求分发,一般将配置高的服务器设置的权重调高,配置较低的服务器设置的权重调低。这样可以避免在高并发时,配置较低的服务器因为压力较大服务异常的发生。
- 执行以下步骤,开启负载均衡的 会话保持 功能。
- 点击左侧 监听 ,监听页面点击右侧的 配置
- 配 置监听页面的 高级配置 处,点击 修改
- 开启 会话保持 ,超时时间 输入 180 (即 3 分钟);完成后点击 下一步
- 下面的 后端服务器、健康检查 和 配置审核 页面都采用默认值 ,依次完成配置
- 返回到 监听 页面 ,会话保持 状态 已开启
- 再次在浏览器中输入 负载均衡 的 IP地址 ,多次刷新,发现在会话保持的超时时间内请求只会分发到某一台 ECS 上(究竟是哪一台 ECS 没有规定),时间超出后,重新按照权重比例分发
- 我们关闭开启 会话保持 的那台ECS 。默认服务器组页面,已添加的服务器中 ,点击目标ECS的的高亮部分(即 云服务器ID)
- 实例详情页面 ,点击右上角处的 【停止】 ,弹窗页面点击【确定 】关闭当前ECS
- 返回负载均衡管理控制台,在默认服务器组页面中点击右上角的【刷新】,页面刷新后被停止的 ECS 的 状态 变为 已停止,【监听】 页面,也出现 异常 提示。同样的,点击左上角的 【实例管理 】,返回负载均衡管理控制台主页面,异常 报警也会出现
- 再次刷新浏览器中 负载均衡 的 IP地址 ,此时,请求发送到 健康检查状态 为 正常 的ECS上
- 结果证明,当某一台 ECS 出现异常后,负载均衡会自动将请求发送到健康检查状态正常的 ECS 上