全部產品
Search
文件中心

:為什麼無法訪問負載平衡

更新時間:Feb 28, 2024

問題描述

使用負載平衡後,用戶端無法訪問負載平衡。

解決方案

本文中出現的連接埠和IP都是示範環境參數值,當排查用戶端無法訪問負載平衡問題時,請根據實際情況配置連接埠和內網IP資訊。

問題原因處理方法
四層監聽的後端伺服器無法訪問負載平衡的原因:
  • CLB四層監聽的後端伺服器不支援同時作為用戶端和服務端。
  • NLB四層監聽的伺服器組開啟了用戶端地址保持功能,導致伺服器組內的後端伺服器不支援同時作為用戶端和服務端。
    說明 NLB在伺服器組配置中關閉“開啟用戶端地址保持”功能後,伺服器組內的後端伺服器支援同時作為用戶端和服務端。
  • CLB:無。
  • NLB:伺服器組關閉“開啟用戶端地址保持”功能。
健全狀態檢查異常。健全狀態檢查異常時請參見如何排查四層監聽(TCP/UDP)健全狀態檢查異常如何排查七層監聽(HTTP/HTTPS)健全狀態檢查異常
不支援通過Server Load Balancer搭建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

建立Server Load Balancer執行個體後,沒有添加監聽。請配置監聽,詳情請參見CLB監聽概述
負載平衡通過網域名稱訪問不通,可能為使用者網域名稱解析錯誤導致。無。
用戶端本網或電訊廠商中間鏈路異常。從不同地區及不同網路環境,對負載平衡相應服務連接埠做訪問測試。

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

用戶端IP被Apsara Stack Security攔截。
  1. 擷取用戶端網路環境對應的公網IP。
  2. 將擷取的公網IP配置為白名單,該操作將會對來自相應IP到負載平衡的所有訪問全部允許存取。
    說明 該操作可能會帶來安全風險,確保白名單中的IP不會對負載平衡進行惡意攻擊。
使用者使用完高防IP之後切換回普通模式,但是未關閉存取控制白名單功能。參見設定黑白名單(針對高防執行個體IP),取消白名單。