文章出處

自從我們在阿里云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上開啟會話保持解決了問題。


文章列表


不含病毒。www.avast.com
arrow
arrow
    全站熱搜
    創作者介紹
    創作者 大師兄 的頭像
    大師兄

    IT工程師數位筆記本

    大師兄 發表在 痞客邦 留言(0) 人氣()