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

概述

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

示例信息

负载均衡SLB实例:假设SLB实例的外网IP地址为1.1.1.1,后端为两个ECS实例。

两个后端ECS实例:均运行Web服务,内网IP分别为192.168.32.175192.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)监听的会话保持功能测试方法不同,此处分开介绍。

四层监听

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

登录客户端测试机。
新建测试脚本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更改测试次数。

执行如下命令,进行会话保持测试。

sh check_4.sh

系统显示类似如下:

如果返回后端ECS实例的内网IP均是同一个,则表明会话保持有效。

如果返回后端ECS实例的内网IP不固定,则表明会话保持失效。

七层监听

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

登录客户端测试机。

执行如下命令,保存负载均衡SLB实例的Cookie值。

说明:如果会话保持默认模式是植入Cookie,而curl命令默认不保存和发送Cookie。需要预先保存相应的Cookie,再进行测试。否则,curl测试结果将是随机的,影响测试结果的准确性。

curl -D test.cookie http://1.1.1.1/check.php

新建测试脚本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更改测试次数。
执行如下命令,进行会话保持测试。

sh check_7.sh

系统显示类似如下:

如果返回后端ECS实例的内网IP均是同一个,则表明会话保持有效。

如果返回后端ECS实例的内网IP不固定,则表明会话保持失效。

posted @ 2021-05-28 15:42  明月,  阅读(726)  评论(0编辑  收藏  举报