IPv6 负载均衡快速入门
负载均衡支持 IPv4、IPv6 和 IPv6 NAT64 三个 IP 版本,IPv6 负载均衡支持 TCP/UDP/HTTP/HTTPS 协议,提供基于域名和 URL 路径的灵活转发能力。本文将引导您如何快速使用 IPv6 负载均衡。
前提条件
-
云服务器实例及 IPv6 配置:负载均衡只负责转发流量,不具备处理请求的能力。因此,您需要首先搭建处理用户请求的云服务器实例,并完成云服务器的 IPv6 配置。有关如何创建云服务器实例并启用 IPv6,请参见快速搭建 IPv6 私有网络。
-
Web 服务部署:本文以 HTTP 转发为例,云服务器上必须部署相应的 Web 服务器(如 Apache、Nginx、IIS 等),同时 Web 服务使用的端口需要监听 IPv6。
使用说明
- IPv6 负载均衡支持获取客户端 IPv6 源地址。
- 四层 IPv6 负载均衡支持直接获取客户端 IPv6 源地址。
- 七层 IPv6 负载均衡支持通过 HTTP 的 X-Forwarded-For 头域获取客户端 IPv6 源地址。
- 当前 IPv6 负载均衡是纯公网负载均衡,相同 VPC 的客户端无法通过内网访问该 IPv6 负载均衡。
步骤1:搭建云服务器并配置 IPv6
-
登录云服务器控制台:登录站狐云 官网,选择 云产品 > 云计算与网络 > 云服务器,登录云服务器控制台完成 IPv6 的基础配置,详细操作请参见快速搭建 IPv6 私有网络。
-
部署并重启 Nginx 服务:在云服务器中,依次执行如下命令,部署并重启 Nginx 服务。
yum install nginx
service nginx restart -
查看 Nginx 服务是否监听 IPv6:执行如下命令进行查看。
netstat -tupln
-
检查 Nginx 配置文件:执行如下命令,打开 Nginx 配置文件进行查看。
vim /etc/nginx/nginx.conf
步骤2:创建 IPv6 负载均衡实例
-
登录负载均衡控制台:登录站狐云 官网,选择 云产品 > 云计算与网络 > 负载均衡,登录负载均衡控制台。
-
进入实例购买界面:在 LB 实例列表 界面,单击 新建 进入 负载均衡 LB 实例购买界面。
-
配置实例参数:在 负载均衡 LB 实例购买界面,设置以下参数:
- 网络类型:公网
- 可用区类型:单可用区
- IP 版本:IPv6
- 网络:选择已经获取 IPv6 CIDR 的私有网络和子网
- 所属运营商:外网 CAP
实例名和购买数量您选择默认或按需配置均可。然后单击 确认开通。
-
查看新建实例:在 LB 实例列表 即可看到新建的实例。
步骤3:创建 IPv6 负载均衡监听器
配置 HTTP 监听协议和端口
-
进入负载均衡详情页:在 LB 实例列表 界面,选择已创建的负载均衡实例,单击实例 ID,进入负载均衡详情页。
-
修改实例名称(可选):在 基本信息 模块,可以单击名称后的修改图标修改实例名称。
-
新建监听器:在 监听器管理 中的 HTTP/HTTPS 监听器 下,单击 新建,新建负载均衡监听器。
-
配置监听器参数:在弹出的对话框中,配置以下参数,完成后单击 确定。
参数 说明 名称 监听器名称。本示例中可自定义为“Listener1”。 监听器协议 监听器的协议和监听端口。
- 监听协议包含 HTTP 和 HTTPS,本例选择 HTTP。
- 监听端口是用来接收请求并向后端服务器转发请求的端口,端口范围为 1 - 65535。其中,843、1020、1433、1434、3306、3389、6006、20000、36000、42222、48369、56000、65010 端口为系统保留端口,暂不对外开放。
- 同一个负载均衡实例内,监听端口不可重复。默认域名 可选择开启或关闭。
- 开启:当客户端请求没有匹配本监听器的任何域名时,CLB 会将请求转发给默认域名(Default Server),每个监听器只能配置且必须配置一个默认域名。
- 如果您的七层监听器已配置默认域名,未匹配其他规则的客户端请求会被转发到默认域名。
- 如果您的七层监听器未配置默认域名,未匹配其他规则的客户端请求则会被转发到 CLB 加载的第一个域名,由于加载顺序与控制台配置顺序可能不一致,因此不一定是控制台配置的第一个。
- 关闭:当客户端请求没有匹配本监听器的任何域名时,请求将无法被转发。
配置监听器的转发规则
-
添加转发规则:在 监听器管理 中,选中刚才新建的监听器,单击 +,弹出 创建 HTTP/HTTPS 转发规则 对话框。
-
设置基本配置信息:在弹出的转发规则对话框中,设置域名、URL 路径和均衡方式等基本配置信息,单击 下一步:健康检查。
- 域名:您的后端服务所使用的域名,本例使用
www.qcloudtest.com
。域名支持通配符,详情请参见配置说明。 - URL 路径:您的后端服务的访问路径,本例使用
/image/
。 - 均衡方式:选择 按权重轮询。
- 域名:您的后端服务所使用的域名,本例使用
-
配置健康检查:开启健康检查,检查域名使用默认的转发域名和转发路径,单击 下一步:会话保持。
-
会话保持:开启会话保持并配置保持时间,单击 提交。
有关负载均衡监听器的更多内容,请参见 负载均衡监听器概述。
说明:
- 一个监听器(即监听协议:端口)可以配置多个域名,一个域名下可以配置多条 URL 路径,选中监听器或域名,单击【+】即可创建新的规则。
- 会话保持:如果用户关闭会话保持功能,选择轮询的方式进行调度,则请求依次分配到不同后端服务器上;如果用户开启会话保持功能,或关闭会话保持功能但选择 ip_hash 的调度方式,则请求持续分配到同一台后端服务器上去。
绑定云服务器
-
绑定云服务器:在 监听器管理 界面,选中并展开刚才创建的监听器,选中域名、选中 URL 路径,右侧区域框为 URL 路径已绑定的云服务器 IPv6 信息列表,新增绑定请单击 绑定。
-
选择云服务器实例:在弹出的绑定 RS 对话框中,勾选需要绑定的弹性网卡,并设置云服务器的 Nginx 服务默认端口为 80,设置权重(默认值 10),单击 确定。
说明:
CLB 绑定的 ENI 时,ENI 必须绑定在 CVM 上;没有绑定 CVM 的 ENI 不能被 CLB 绑定。
-
确认绑定状态:成功绑定云服务器后,请确认端口状态是否为 健康,如果为 健康,请进行 步骤4:测试 IPv6 负载均衡。
- 如果端口状态为 异常,请确定监听器是否绑定了正确的云服务器的 Nginx 服务端口,同时登录云服务器检查端口是否已经正常监听 IPv6,可参见 步骤1 中的第 3 步进行查看。
步骤4:测试 IPv6 负载均衡
配置完成 IPv6 负载均衡后,可以验证该架构是否生效,即验证通过一个 CLB 实例下不同的域名 + URL 访问不同的后端云服务器,也即验证内容路由(content-based routing) 的功能是否可用。
使用具有 IPv6 公网能力的客户端,访问域名或者负载均衡的 IPv6 地址,如果能够正常访问云服务器的 Web 服务,则表明 IPv6 负载均衡工作正常,示例步骤如下:
-
修改 hosts 文件:在 Windows 系统中,进入
C:\Windows\System32\drivers\etc
目录,修改 hosts 文件,将域名映射到 CLB 实例的 VIP 上。 -
验证 hosts 配置:为了验证 hosts 是否配置成功,可以运行 cmd,用 ping 命令探测一下该域名是否成功绑定了 VIP,如有数据包,则证明绑定成功。
-
测试负载均衡服务:在浏览器中输入访问路径
http://www.example.com/image/
,测试负载均衡服务。如下图所示,则表示本次请求被 CLB 转发到了 rs-1 这台 CVM 上,CVM 正常处理请求并返回。 -
刷新请求:此监听器的轮询算法是“按权重轮询”,且两台 CVM 的权重都是“10”,刷新浏览器,再次发送请求,可以看到本次请求被 CLB 转发到了 rs-2 这台 CVM 上。
注意:
image/
后/
必须保留,代表 image 是默认的目录,而不是名为 image 的文件。