問題描述

使用負載均衡后,客戶端無法訪問負載均衡。

解決方案

本文中出現的端口和IP都是演示環境參數值,當排查客戶端無法訪問負載均衡問題時,請根據實際情況配置端口和內網IP信息。

問題原因處理方法
四層監聽的后端服務器無法訪問負載均衡的原因:
  • CLB四層監聽的后端服務器不支持同時作為客戶端和服務端。
  • NLB四層監聽的服務器組開啟了客戶端地址保持功能,導致服務器組內的后端服務器不支持同時作為客戶端和服務端。
    說明 NLB在服務器組配置中關閉“開啟客戶端地址保持”功能后,服務器組內的后端服務器支持同時作為客戶端和服務端。
  • CLB:無。
  • NLB:服務器組關閉“開啟客戶端地址保持”功能。
健康檢查異常。健康檢查異常時請參見如何排查四層監聽(TCP/UDP)健康檢查異常如何排查七層監聽(HTTP/HTTPS)健康檢查異常
不支持通過負載均衡SLB搭建FTP、TFTP、H323和SIP等。針對FTP服務,可以通過參考以下步驟解決問題:
  • 如果是Linux系統,您可以嘗試配置22端口的轉發,使用SFTP連接并傳輸數據。
  • 支持通過EIP可見模式將EIP綁定到FTP服務器上,對外提供FTP服務,配置詳情請參見使用EIP部署FTP服務器
服務器內網防火墻設置沒有放行80端口。可以參考以下步驟,暫時關閉防火墻:
  • Windows服務器執行以下命令。

    firewall.cpl

  • Linux服務器上執行以下命令。

    /etc/init.d/iptables stop

后端端口異常。參考以下步驟,確認問題。然后根據實際情況解決此問題:
  • 對于四層負載均衡來說,使用telnet命令測試有響應即為正常,命令如下所示。

    telnet 10.XX.XX.1 80

  • 對于七層負載均衡,HTTP狀態碼需要是200等代表正常的狀態碼,檢驗方法如下:
    • Windows:直接在ECS實例上訪問ECS的內網IP,測試是否正常,命令如下所示。

      http://10.XX.XX.1

    • Linux:參考以下命令,查看返回值是否為HTTP/1.1 200 OK

      curl -I 10.XX.XX.1

rp_filter特性和負載均衡底層LVS的策略路由產生沖突,導致訪問出現異常。
  1. 登錄四層負載均衡后端添加的Linux系統的ECS實例。
  2. 編輯/etc/sysctl.conf文件,將系統配置文件中的以下三個參數值設置為0
     net.ipv4.conf.default.rp_filter = 0
     net.ipv4.conf.all.rp_filter = 0
     net.ipv4.conf.eth0.rp_filter = 0
  3. 執行sudo sysctl -p命令,使配置生效。
監聽功能異常
在服務器上執行以下命令,如果能看到10.XX.XX.1:80的監聽信息,或者0.0.0.0:80的監聽信息,說明端口的監聽正常。然后根據實際情況解決此問題:
  • Windows服務器上執行以下命令。

    netstat -ano | findstr :80

  • Linux服務器上執行以下命令。

    netstat -anp | grep :80

創建負載均衡實例后,沒有添加監聽。請配置監聽,詳情請參見監聽概述
負載均衡通過域名訪問不通,可能為用戶域名解析錯誤導致。無。
客戶端本地網絡或運營商中間鏈路異常。從不同地域及不同網絡環境,對負載均衡相應服務端口做訪問測試。

如果只有本地網絡訪問時出現異常,則判定是網絡異常導致的問題,此時可以繼續通過持續進行ping測試或MTR路由跟蹤等手段做進一步排查分析。

客戶端IP被云盾攔截。
  1. 獲取客戶端網絡環境對應的公網IP。
  2. 將獲取的公網IP配置為白名單,該操作將會對來自相應IP到負載均衡的所有訪問全部放行。
    說明 該操作可能會帶來安全風險,確保白名單中的IP不會對負載均衡進行惡意攻擊。
用戶使用完高防IP之后切換回普通模式,但是未關閉訪問控制白名單功能。參見設置黑白名單(針對高防實例IP),取消白名單。