如何使用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)监听的会话保持功能测试方法不同,此处分开介绍。
四层监听
参考如下步骤测试会话保持的有效性:
登录客户端测试机。
新建测试脚本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不固定,则表明会话保持失效。