用户指南

负载均衡器指南

负载均衡器可以将来自多个公网地址的访问流量分发到多台主机上, 并支持自动检测并隔离不可用的主机,从而提高业务的服务能力和可用性。 同时,你还可以随时通过添加或删减主机来调整你的服务能力,而且这些操作不会影响业务的正常访问。

本指南旨在介绍如何通过配置负载均衡器(LoadBalancer)来实现对多台主机的负载均衡。

搭建 HTTP 协议的负载均衡器

在本例中,我们假设已经存在2台主机,位于基础网络中, 每台主机上都已搭建好 HTTP 的 web server,监听 80 端口。 我们接下来将配置负载均衡器对这2台主机进行负载均衡。

第一步:创建一个负载均衡器

首先,你需要创建一个负载均衡器。 在创建的对话框中,你需要指定负载均衡器需要绑定的公网IP地址, 这里我们选择两个公网IP地址进行绑定,然后点击提交。

注解

你也可以在负载均衡器创建完成之后,通过 “绑定”/”解绑” 动作来动态地调整公网IP数目

第二步:新建监听器

当负载均衡器创建完成之后,我们需要新建一个 HTTP 协议的监听器。 首先,点击进入负载均衡器的详情页面,找到并点击 “新建监听器” 按钮。 如图所示,在弹出的对话框中,监听协议选择 “HTTP”,监听端口选择 “80”,均衡方式选择 “轮询”,点击提交。

注解

添加监听器后请检查负载均衡器的防火墙规则,确保 80 端口流量可以通过,否则从外网无法访问您的服务

你也可以通过点击右边 “快速设置” 里头的 “HTTP” 协议进行快速设置

第三步:添加后端服务器

监听器添加完成之后,我们需要为监听器添加后端服务器。 首先,找到并点击 HTTP 监听器下面的 “添加后端服务器” 按钮。 如图所示,在弹出的对话框中,”所在网络” 需要选择 “基础网络”, 然后从 “后端服务器” 的下拉菜单中选择我们已经配置好的 web server,”端口” 填 “80”, 然后点击提交。同理你可以添加另一台主机。

由于你的配置修改还没有被应用,所以后端服务器会显示不可用状态,这是正常的。 这时我们需要点击”新建监听器”旁边的”应用修改”按钮,使得修改生效。

注解

在每次完成修改负载均衡器配置之后,都需要点击”应用修改”按钮将修改生效

如下图所示,应用修改完成之后,后端服务器会成功被负载均衡器接管, 然后状态会恢复为 “活跃”。此时你通过负载均衡器绑定的IP地址(例如 http://<loadbalancer_eip>/ ), 就可以正常的访问自己的服务了。

搭建 HTTPS 协议的负载均衡器

假设我们的 web server 主机还提供 HTTPS 协议的访问, 那么我们同样可以搭建一个 HTTPS 的负载器来对我们的 HTTPS web server 进行负载均衡。 我们这个版本的负载均衡器还没有提供内置的 HTTPS 协议支持,但是我们可以通过 TCP 协议来实现类似的功能。

第一步:创建一个负载均衡器

因为一个负载均衡器可以新建多个监听器,所以在本例里, 我们不再创建新的负载均衡器,而是选择在现有负载均衡器里添加新的监听器。

第二步:新建监听器

首先,点击进入负载均衡器的详情页面,找到并点击 “新建监听器” 按钮。 如图所示,监听协议选择 “TCP”,监听端口选择 “443”,均衡方式选择 “轮询”, 点击提交。

注解

添加监听器后请检查负载均衡器的防火墙规则,确保 443 端口流量可以通过,否则从外网无法访问您的服务

你也可以通过点击右边”快速设置”里头的 “HTTPS” 协议进行快速设置

第三步:添加后端服务器

如图所示,”所在网络” 依旧选择 “基础网络”, 然后从 “后端服务器” 的下拉菜单中选择我们已经配置好的 web server,”端口” 填 “443”,然后点击提交。

同理,如果还有其他 HTTPS 主机,你可以通过类似的操作依次添加, 注意在添加完成之后,不要忘记点击 “应用修改” 使配置生效。

添加私有网络中的后端服务器

在我们上面的例子中,我们添加的后端服务器都是位于基础网络中的主机。 本篇中将介绍如何添加私有网络中的主机作为后端服务器。

注解

目前,我们只支持添加受管私有网络的主机

为了行文方便,假设我们有一个名称为 “私有网络 1” 的受管私有网络, 连接着名称为 “路由器 1” 的路由器。私有网络里头有两台 HTTP server 主机, IP地址分别为 192.168.1.2192.168.1.3 。 我们现在通过配置负载均衡器对这两台受管私有网络中的主机进行负载均衡。

第一步:建立路由器转发规则

因为私有网络和其他网络是 100% 隔离的,所以我们需要建立路由器的转发规则来使请求能够到达私有网络内部的主机。 如图所示,我们建立一条规则,将 “8081” 端口的 TCP 请求转发给 192.168.1.2 的 “80” 端口。 同理建立另外一条规则,将 “8082” 端口的 TCP 请求转发给 192.168.1.3 的 “80” 端口。

注解

“8081” 和 “8082” 端口是我们为了行文方便定义的,你可以指定其他自己喜欢的端口

转发规则建立完成后,需要点击 “应用修改” 使修改生效。 同时,我们需要打开路由器对应的防火墙的 “8081” 和 “8082” 端口下行规则, 使得这两个端口可以被外部访问,添加规则之后需要点击 “更新规则” 使得修改应用。

第二步:创建一个负载均衡器

步骤同 搭建 HTTP 协议的负载均衡器 ,不再赘述。

第三步:新建监听器

步骤同 搭建 HTTP 协议的负载均衡器 ,不再赘述。

第四步:添加后端服务器

如图所示,在 “所在网络” 我们需要选择 “受管私有网络”, 然后从 “后端服务器” 的下拉菜单中选择 “路由器 1”, “端口” 填 “8081”,然后点击提交。同理,添加另一个后端服务器, 从 “后端服务器” 的下拉菜单中依然选择 “路由器 1”,”端口” 填 “8082”,然后点击提交。

完成添加之后,点击 “应用修改” 使得修改生效。这时我们会看到两个后端服务器已经变成 “活跃” 状态。

负载均衡器术语解释

  1. 均衡方式

轮询:依据后端服务器的权重,将请求轮流发送给后端服务器,常用于短连接服务,例如 HTTP 等服务。

最少连接:优先将请求发给拥有最少连接数的后端服务器,常用于长连接服务,例如数据库连接等服务。

  1. 会话保持

会话保持可以将来自同一个客户端的请求始终发给同一个后端服务器,是通过 cookie 的方式来实现的。

植入cookie:由负载均衡器向客户端植入 cookie,这时你需要指定 cookie 的过期时间,不指定默认为不过期。

改写cookie:cookie 由你的后端业务来植入和管理,负载均衡器会通过改写该 cookie 的值来实现会话保持, 改写 cookie 对后端服务是透明的,不会影响后端服务的正常运行;这时你需要指定需要改写的 cookie 名称。

  1. 健康检查

开启健康检测后,负载均衡器会根据你的配置定期检查后端服务的运行状态, 当某个后端服务出现异常时,会自动隔离该后端服务,并将请求转发给其他健康的后端服务,实现高可用性。

健康检查方式

TCP:通过向后端服务器发送 TCP 包来检测后端服务

HTTP:通过向后端服务器发送 HTTP 请求来检测后端服务,你可以指定需要检测的 URI。负载均衡器会通过 HTTP 返回值是否为200来判断服务是否正常

健康检查选项

检查间隔:连续两次健康检查之间的时间间隔,单位为秒,范围为 2 - 60s

超时时间:等待健康检查请求返回的超时时间,检查超时将会被判定为一次检查失败,单位为秒,范围为 5 - 300s

不健康阈值:多少次连续检查失败之后,可以将后端服务屏蔽,范围为 2 - 10次

健康阈值:多少次连续检查成功之后,可以将后端服务恢复,范围为 2 - 10次

  1. 后端服务器权重

当均衡方式为 “轮询” 时,你可以通过设置后端服务器的权重来让负载均衡器进行权重转发。 权重的范围为 1 - 100,数值越大权重越高。

  1. 后端服务器状态

活跃:健康检查正常

不可用:健康检查失败

异常:处于健康和不健康的中间转换状态,一般持续时间很短,与你配置的 “健康检查选项” 相关

  1. 附加 HTTP 头字段

当监听协议为 HTTP 时,负载均衡器在转发 HTTP 请求时可以附加用户指定的 HTTP 头字段,后端服务器可以通过解析相应的头字段来获取字段内容。目前支持的附加头字段有:

客户端真实IP: 对应的HTTP 的头字段为 X-Forwarded-For

负载均衡器ID: 对应的HTTP 的头字段为 QC-LB-ID

负载均衡器入口IP: 对应的HTTP 的头字段为 QC-LB-IP

FAQ