起因
前些日子早上8點多突然接到合作客戶的緊急電話,因為阿裡雲服務到期沒有及時續費,導緻後續操作中誤删SLB和容器服務,經過小夥伴們通宵達旦的努力,還是未能完全恢複通路,希望能夠過去一起看一下。
注:雖然最終的解決過程隻花了不到3分鐘,但确是走了一大段彎路,寫下該文聊以紀念這段曲折的路程。
解決過程
顧不得收拾,馬上驅車20公裡到達現場,傾聽小夥伴的情況後,開始按照如下思路逐一排查。
1.因為使用k8s容器服務,直接用容器外網IP通路,結果顯示HTTP正常,
HTTPS無法通路,報502錯誤,說明容器服務部署正常;
2.切換至域名通路,發現HTTP和HTTPS都通路不了;
3.通過
ping确認域名指向ip,發現解析位址未指向SLB;
4.通過
阿裡域名解析服務(需要登入阿裡雲後才能通路)進行域名和SLB公網IP綁定;
5.重新通過域名通路,HTTP正常,HTTPS異常;
6.檢查SSL證書,發現未在SLB中進行配置(注:SLB為新購伺服器);
7.檢查容器的yaml檔案,确認已配置SSL證書,且沒有設定nginx服務;
8.容器的yaml檔案開啟https及443端口,發現http異常,報502錯誤,https又正常了;
9.判定應該是SLB沒有正确配置的原因。(奇怪為啥當初要進行SSL證書雙重配置?)
于是到這裡整個調查結束,大概花了20分鐘;
注:因我對該項目不熟悉,且是2年前的伺服器配置,最初人員都已經替換了幾輪(估計是跳到阿裡去了),更糟糕的是沒有留下任何配置說明,
10.接下來開始設定SLB的HTTP強制轉發到HTTPS,參考了阿裡雲的幫助文檔之
簡單路由-HTTP 協定變為 HTTPS 協定之一,
簡單路由-HTTP 協定變為 HTTPS 協定之二 HTTP重定向至HTTPSpalapala...
11.突然發現幫助教程和新的SLB配置頁面有些不一樣(注:之前都是通過nginx或者apache進行配置的,SLB上還是頭一遭,為啥?因為小戶人家要精打細算啊)。
教程頁面如下

新的HTTP配置頁面
大家看見【監聽轉發】的開關了嗎?對,它需要【展開進階配置】後才能看到,我們3人8隻眼(别問我為什麼多了2隻眼)竟然生生的錯過了。
12.于是找【監聽轉發】的按鈕花了好久,一開始以為阿裡把這個功能給閹割了,琢磨着又不是,反反複複,複複反反配置HTTPS,又配置HTTP,然後又折騰yaml檔案,甚至小夥伴們都開始建議要不要在代碼裡面做個強制跳轉,Oh,My God!
13.然事情總是那麼的因緣際會,福至心靈。有時候很苦惱的問題對于程式員來說會突然幡然醒悟,
配置好HTTPS後,偶然間點了下【監聽轉發】的開關,然後kuakuakuakua,一頓操作猛如虎後,分别用HTTP和HTTPS通路域名,居然ok了,瞬間滿心的歡喜,内心的奔騰,面對2個多小時的折騰,心想總算對得起十幾年的手藝,沒有給它丢臉。
配置成功後的清單頁面如下:
總結
1.雖然是小問題,但是碰到坎的時候别鑽牛角尖,有時候洗個臉看個書換個情緒真的會有福報。
2.要多翻阿裡雲的幫助文檔,想起了java手冊,html文檔,MSDN的日子;
3.SLB配置強轉換是有順序的,先https,再http。删除的時候也是,先http再https,有依賴關系。
4.現在微信小程式,IOS應用包括谷歌等都開始強制使用HTTPS了,很奇怪為啥要把【強制轉發】開關給掩藏起來(即通過點選進階配置後才能看到),阿裡雲的産品說很多客戶的網站還是HTTP通路的占了多數,好吧!You Say You Yes。