之前的一篇文章《使用curl测试阿里云的SLB,会话保持无效》测试得知阿里云的HTTP协议的SLB会话保持必须使用cookie,但是阿里云的HTTP协议的SLB有SLB植入cookie和重写cookie,这两者有什么区别呢?我们现在来做实验了解一下。
我们使用一段简单的PHP程序来测试如下
1 |
echo 'server1' ; |
2 |
setcookie( "$_GET[c]" , 'test-cookie-value' ,time()+3600); |
3 |
var_dump( $_COOKIE ); |
这样可以通过?c=xx发送名为xx的cookie
先使用SLB植入Cookie,如下:
访问测试,发现SLB会发送一个SERVERID的cookie,value就是RS的标示符,从而实现会话保持;
这时候不论服务器是否发送cookie都会有这个cookie字段。
现在我们来测试一下SLB重写cookie,cookie名为testcookie;
我们清理掉之前测试的cookie记录,然后先不发送这个名字的cookie测试一下,发现没有能够标示RS的cookie产生,会话也没能保持,这从就访问到server2去了。
然后我们再测试一次,发送我们配置的cookie,名字为:testcookie
发现这时候cookie的值已经不是test-cookie-value了,而是被重写为RS的标示符了,server也一直访问到server2实现了会话保持
这样二者的区别就比较好理解了,在多长时间内保持回话呢?SLB植入可以直接在阿里云的控制台设置,SLB重写的话可以配置一下这个COOKIE的生存周期,周期到了cookie失效了自然也就不会在保持了~~