如何使用curl命令测试负载均衡SLB会话保持的有效性

概述

本文主要介绍如何使用curl命令测试负载均衡SLB会话保持的有效性。

详细信息

本文将通过一个示例进行说明和演示。

示例信息

  • 负载均衡SLB实例:假设SLB实例的外网IP地址为1.1.1.1,后端为两个ECS实例。
  • 两个后端ECS实例:均运行Web服务,内网IP分别为192.168.32.175和192.168.32.177。在两个ECS实例中创建测试页面check.php,该页面将返回ECS实例的Cookie和内网IP地址信息。check.php的代码如下。
    <?php
        setcookie('mycookie','cookietest');
        echo 'Cookie is: ';
        echo ($_COOKIE['mycookie']);
        echo '</br>';
        echo 'Current ECS is : ';
        echo '</br>';
        var_dump($_SERVER['SERVER_ADDR']);
    ?>
    访问check.php后显示类似如下。
  • 测试地址:http://1.1.1.1/check.php
  • 客户端测试机:Linux系统,可以访问测试地址。

测试步骤

四层(TCP/UDP)和七层(HTTP/HTTPS)监听的会话保持功能测试方法不同,此处分开介绍。

四层监听

参考如下步骤测试会话保持的有效性:

  1. 登录客户端测试机。
  2. 新建测试脚本check_4.sh,内容如下。
    for ((a=1;a<=30;a++))
    do
      curl http://1.1.1.1/check.php 2>/dev/null | grep 'ECS'
        sleep 1
    done
    说明:该脚本默认测试30次,您可以修改a<=30更改测试次数。
  3. 执行如下命令,进行会话保持测试。
    sh check_4.sh
    系统显示类似如下:
    • 如果返回后端ECS实例的内网IP均是同一个,则表明会话保持有效。
    • 如果返回后端ECS实例的内网IP不固定,则表明会话保持失效。

七层监听

参考如下步骤测试会话保持的有效性:

  1. 登录客户端测试机。
  2. 执行如下命令,保存负载均衡SLB实例的Cookie值。
    说明:阿里云七层负载均衡的会话保持默认模式是植入Cookie,而curl命令默认不保存和发送Cookie。需要预先保存相应的Cookie,再进行测试。否则,curl测试结果将是随机的,影响测试结果的准确性。
    curl -D test.cookie http://1.1.1.1/check.php
  3. 新建测试脚本check_7.sh,内容如下。
    for ((a=1;a<=30;a++))
    do
        curl -b test.cookie http://1.1.1.1/check.php 2>/dev/null | grep 'ECS'
        sleep 1
    done
    说明:该脚本默认测试30次,您可以修改a<=30更改测试次数。
  4. 执行如下命令,进行会话保持测试。
    sh check_7.sh
    系统显示类似如下:
    • 如果返回后端ECS实例的内网IP均是同一个,则表明会话保持有效。
    • 如果返回后端ECS实例的内网IP不固定,则表明会话保持失效。

相关文档

负载均衡SLB中会话保持无效

适用于

  • 负载均衡SLB