阿里雲負載均衡SLB--報錯502 Bad Gateway 的解決方案



一、阿里雲負載均衡SLB 介紹

健康檢查配置 說明
域名和檢查路徑(僅限HTTP方式的健康檢查)

HTTP健康檢查默認由負載均衡系統通過後端ECS內網IP地址向該服務器應用配置的缺省首頁發起http head請求。

如果您用來進行健康檢查的頁面並不是應用服務器的缺省首頁,需要指定具體的檢查路徑.

因爲有些應用服務器會對請求中的host字段做校驗,即要求請求頭中必須存在host字段。如果在健康檢查中配置了域名,則SLB會將域名配置到host字段中去,反之,如果沒有配置域名,SLB則不會在請求中附帶host字段,因此健康檢查請求就會被服務器拒絕,可能導致健康檢查失敗。綜上原因,如果您的應用服務器需要校驗請求的host字段校,那麼則需要配置相關的域名,確保健康檢查正常工作。


二、故障現象及其解決方案

1、故障描述

在瀏覽器訪問 通過SLB配置的 URL地址,出現如下錯誤:

502 Bad Gateway
The proxy server received an invalid response from an upstream server. 

一般出現上面的錯誤提示,有兩種原因造成:(第2種是常見現象

  1. 後端服務器本身就報502錯誤(如:Nginx)
  2. 阿里雲SLB健康檢查機制沒有設置好。這種情況在ECS服務器上通過本機IP(or內網IP)訪問是好的。



2、解決方案

       SLB 與 ECS 之間如果是 HTTPS 協議的話,需要有一個默認的 URL 可以接受 HEAD 請求,這樣 SLB 才知道 ECS 是否存活着,這就是所謂的健康檢查。簡單點可以理解爲心跳檢查。
       問題原因:該後端服務器沒有一個可供 SLB 檢查的默認頁,所以導致了健康檢查失敗。
       解決方案:給 SLB 配置一個健康檢查的 URL 即可。




發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章