Skip to main content

IPv6 负载均衡快速入门

负载均衡支持 IPv4、IPv6 和 IPv6 NAT64 三个 IP 版本,IPv6 负载均衡支持 TCP/UDP/HTTP/HTTPS 协议,提供基于域名和 URL 路径的灵活转发能力。本文将引导您如何快速使用 IPv6 负载均衡。

前提条件

  1. 云服务器实例及 IPv6 配置:负载均衡只负责转发流量,不具备处理请求的能力。因此,您需要首先搭建处理用户请求的云服务器实例,并完成云服务器的 IPv6 配置。有关如何创建云服务器实例并启用 IPv6,请参见快速搭建 IPv6 私有网络

  2. Web 服务部署:本文以 HTTP 转发为例,云服务器上必须部署相应的 Web 服务器(如 Apache、Nginx、IIS 等),同时 Web 服务使用的端口需要监听 IPv6。

使用说明

  • IPv6 负载均衡支持获取客户端 IPv6 源地址。
  • 四层 IPv6 负载均衡支持直接获取客户端 IPv6 源地址。
  • 七层 IPv6 负载均衡支持通过 HTTP 的 X-Forwarded-For 头域获取客户端 IPv6 源地址。
  • 当前 IPv6 负载均衡是纯公网负载均衡,相同 VPC 的客户端无法通过内网访问该 IPv6 负载均衡。

步骤1:搭建云服务器并配置 IPv6

  1. 登录云服务器控制台:登录站狐云 官网,选择 云产品 > 云计算与网络 > 云服务器,登录云服务器控制台完成 IPv6 的基础配置,详细操作请参见快速搭建 IPv6 私有网络。

  2. 部署并重启 Nginx 服务:在云服务器中,依次执行如下命令,部署并重启 Nginx 服务。

    yum install nginx
    service nginx restart
  3. 查看 Nginx 服务是否监听 IPv6:执行如下命令进行查看。

    netstat -tupln

    查看 Nginx 服务

  4. 检查 Nginx 配置文件:执行如下命令,打开 Nginx 配置文件进行查看。

    vim /etc/nginx/nginx.conf

    Nginx 配置文件

步骤2:创建 IPv6 负载均衡实例

  1. 登录负载均衡控制台:登录站狐云 官网,选择 云产品 > 云计算与网络 > 负载均衡,登录负载均衡控制台。

    负载均衡控制台

  2. 进入实例购买界面:在 LB 实例列表 界面,单击 新建 进入 负载均衡 LB 实例购买界面。

  3. 配置实例参数:在 负载均衡 LB 实例购买界面,设置以下参数:

    • 网络类型:公网
    • 可用区类型:单可用区
    • IP 版本:IPv6
    • 网络:选择已经获取 IPv6 CIDR 的私有网络和子网
    • 所属运营商:外网 CAP

    实例名和购买数量您选择默认或按需配置均可。然后单击 确认开通

    配置实例参数

  4. 查看新建实例:在 LB 实例列表 即可看到新建的实例。

    查看新建实例

步骤3:创建 IPv6 负载均衡监听器

配置 HTTP 监听协议和端口

  1. 进入负载均衡详情页:在 LB 实例列表 界面,选择已创建的负载均衡实例,单击实例 ID,进入负载均衡详情页。

  2. 修改实例名称(可选):在 基本信息 模块,可以单击名称后的修改图标修改实例名称。

  3. 新建监听器:在 监听器管理 中的 HTTP/HTTPS 监听器 下,单击 新建,新建负载均衡监听器。

  4. 配置监听器参数:在弹出的对话框中,配置以下参数,完成后单击 确定

    参数说明
    名称监听器名称。本示例中可自定义为“Listener1”。
    监听器协议监听器的协议和监听端口。
    - 监听协议包含 HTTP 和 HTTPS,本例选择 HTTP。
    - 监听端口是用来接收请求并向后端服务器转发请求的端口,端口范围为 1 - 65535。其中,843、1020、1433、1434、3306、3389、6006、20000、36000、42222、48369、56000、65010 端口为系统保留端口,暂不对外开放。
    - 同一个负载均衡实例内,监听端口不可重复。
    默认域名可选择开启或关闭。
    - 开启:当客户端请求没有匹配本监听器的任何域名时,CLB 会将请求转发给默认域名(Default Server),每个监听器只能配置且必须配置一个默认域名。
    - 如果您的七层监听器已配置默认域名,未匹配其他规则的客户端请求会被转发到默认域名。
    - 如果您的七层监听器未配置默认域名,未匹配其他规则的客户端请求则会被转发到 CLB 加载的第一个域名,由于加载顺序与控制台配置顺序可能不一致,因此不一定是控制台配置的第一个。
    - 关闭:当客户端请求没有匹配本监听器的任何域名时,请求将无法被转发。

配置监听器的转发规则

  1. 添加转发规则:在 监听器管理 中,选中刚才新建的监听器,单击 ,弹出 创建 HTTP/HTTPS 转发规则 对话框。

  2. 设置基本配置信息:在弹出的转发规则对话框中,设置域名、URL 路径和均衡方式等基本配置信息,单击 下一步:健康检查

    • 域名:您的后端服务所使用的域名,本例使用 www.qcloudtest.com。域名支持通配符,详情请参见配置说明。
    • URL 路径:您的后端服务的访问路径,本例使用 /image/
    • 均衡方式:选择 按权重轮询
  3. 配置健康检查:开启健康检查,检查域名使用默认的转发域名和转发路径,单击 下一步:会话保持

  4. 会话保持:开启会话保持并配置保持时间,单击 提交

有关负载均衡监听器的更多内容,请参见 负载均衡监听器概述

说明

  • 一个监听器(即监听协议:端口)可以配置多个域名,一个域名下可以配置多条 URL 路径,选中监听器或域名,单击【+】即可创建新的规则。
  • 会话保持:如果用户关闭会话保持功能,选择轮询的方式进行调度,则请求依次分配到不同后端服务器上;如果用户开启会话保持功能,或关闭会话保持功能但选择 ip_hash 的调度方式,则请求持续分配到同一台后端服务器上去。

绑定云服务器

  1. 绑定云服务器:在 监听器管理 界面,选中并展开刚才创建的监听器,选中域名、选中 URL 路径,右侧区域框为 URL 路径已绑定的云服务器 IPv6 信息列表,新增绑定请单击 绑定

  2. 选择云服务器实例:在弹出的绑定 RS 对话框中,勾选需要绑定的弹性网卡,并设置云服务器的 Nginx 服务默认端口为 80,设置权重(默认值 10),单击 确定

    说明

    CLB 绑定的 ENI 时,ENI 必须绑定在 CVM 上;没有绑定 CVM 的 ENI 不能被 CLB 绑定。

  3. 确认绑定状态:成功绑定云服务器后,请确认端口状态是否为 健康,如果为 健康,请进行 步骤4:测试 IPv6 负载均衡。

    • 如果端口状态为 异常,请确定监听器是否绑定了正确的云服务器的 Nginx 服务端口,同时登录云服务器检查端口是否已经正常监听 IPv6,可参见 步骤1 中的第 3 步进行查看。

步骤4:测试 IPv6 负载均衡

配置完成 IPv6 负载均衡后,可以验证该架构是否生效,即验证通过一个 CLB 实例下不同的域名 + URL 访问不同的后端云服务器,也即验证内容路由(content-based routing) 的功能是否可用。

使用具有 IPv6 公网能力的客户端,访问域名或者负载均衡的 IPv6 地址,如果能够正常访问云服务器的 Web 服务,则表明 IPv6 负载均衡工作正常,示例步骤如下:

  1. 修改 hosts 文件:在 Windows 系统中,进入 C:\Windows\System32\drivers\etc 目录,修改 hosts 文件,将域名映射到 CLB 实例的 VIP 上。

  2. 验证 hosts 配置:为了验证 hosts 是否配置成功,可以运行 cmd,用 ping 命令探测一下该域名是否成功绑定了 VIP,如有数据包,则证明绑定成功。

  3. 测试负载均衡服务:在浏览器中输入访问路径 http://www.example.com/image/,测试负载均衡服务。如下图所示,则表示本次请求被 CLB 转发到了 rs-1 这台 CVM 上,CVM 正常处理请求并返回。

  4. 刷新请求:此监听器的轮询算法是“按权重轮询”,且两台 CVM 的权重都是“10”,刷新浏览器,再次发送请求,可以看到本次请求被 CLB 转发到了 rs-2 这台 CVM 上。

注意

image// 必须保留,代表 image 是默认的目录,而不是名为 image 的文件。