云计算之路-阿里云上:SLB引起的https访问速度慢问题

自从我们在阿里云SLB上部署了https之后(详见在SLB上部署https遇到的问题及解决方法),陆续有园友向我们反馈登录时速度很慢(登录时是通过https访问),有些园友甚至无法访问登录页面。

而我们自己登录时,速度飞快,从未遇到过登录速度慢的问题。

在昨天之前,我们一直怀疑可能是这些园友所使用的网络对https进行了某些限制,没有一点去怀疑问题与阿里云有关。

昨天晚上 @Bill Tsui 在闪存上反馈这个问题时,我们让他用http访问,速度立即变得飞快,只要换成https速度就立马变慢。这触发了我们把问题的怀疑点放到了阿里云的SLB,http走的是SLB的七层负载均衡,而https走的是SLB的四层负载均衡(TCP)。

阿里云SLB

四层负载均衡的工作原理(详见四层和七层负载均衡的区别):

负载均衡设备在接收到第一个来自客户端的SYN 请求时,即通过上述方式选择一个最佳的服务器,并对报文中目标IP地址进行修改(改为后端服务器IP),直接转发给该服务器。TCP的连接建立,即三次握手是客户端和服务器直接建立的,负载均衡设备只是起到一个类似路由器的转发动作。在某些部署情况下,为保证服务器回包可以正确返回给负载均衡设备,在转发报文的同时可能还会对报文原来的源地址进行修改。

是不是SLB对TCP的处理造成了某些网络线路访问速度慢呢?

当我们把怀疑点放在这个地方,立即想到了验证方法——不走SLB,直接通过云服务器进行https访问。

@Bill Tsui  的帮助下,我们得到验证结果:不走SLB,https访问速度立即变得飞快。

为了进一步验证这个怀疑,今天早上我们在闪存上了解到一些登录速度慢的园友;然后修改登录页面所在域名的DNS,让之解析为云服务器的IP(不走SLB);等解析生效后,这些园友反馈登录速度立即变得很快。

经过这样的验证,我们基本确认问题出在SLB,我们会向阿里云反馈,希望得到阿里云的进一步验证。

通过这个问题,我们的体会是:做云服务一个很大的挑战是任何一个小问题都可能会被放大,一个问题影响到云上的成千上万的网站,就会影响到这些网站上的成万上亿的用户。

感谢 @Bill Tsui@rsync@打醋的 在这次问题验证中提供的帮助!

更新:

后来通过在SLB上开启会话保持解决了问题。

posted @ 2014-01-03 12:13  博客园团队  阅读(8963)  评论(12编辑  收藏  举报