概述
本文主要介绍如何使用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
访问check.php后显示类似如下。
setcookie('mycookie','cookietest');
echo 'Cookie is: ';
echo ($_COOKIE['mycookie']);
echo '</br>';
echo 'Current ECS is : ';
echo '</br>';
var_dump($_SERVER['SERVER_ADDR']);
?> - 测试地址:
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不固定,则表明会话保持失效。
- 如果返回后端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不固定,则表明会话保持失效。
- 如果返回后端ECS实例的内网IP均是同一个,则表明会话保持有效。
相关文档
适用于
- 负载均衡SLB