全部產品
Search
文件中心

Server Load Balancer:NLB快速實現IPv4服務的負載平衡

更新時間:Nov 16, 2024

阿里雲網路型負載平衡NLB(Network Load Balancer)支援TCP、UDP和TCPSSL協議,提供了強大的四層負載平衡能力。如果您需要快速建立一個NLB執行個體,並將來自用戶端的訪問請求轉寄至後端伺服器,請參考本文操作實現IPv4服務的負載平衡。

前提條件

  • 您已在華東2(上海)地區建立了一個Virtual Private Cloud1,並分別在可用性區域E和可用性區域G建立了一個交換器VSW1和VSW2。具體操作,請參見建立專用網路和交換器

  • 您已分別在VSW1和VSW2建立ECS01和ECS02執行個體,且ECS01和ECS02執行個體中部署了應用服務。

    • 關於建立ECS執行個體,請參見自訂購買執行個體

    • 本文ECS01和ECS02部署測試應用樣本如下:

      ECS01服務部署命令

      yum install -y nginx
      systemctl start nginx.service
      cd /usr/share/nginx/html/
      echo "Hello World ! this is ECS01." > index.html

      ECS02服務部署命令

      yum install -y nginx
      systemctl start nginx.service
      cd /usr/share/nginx/html/
      echo "Hello World ! this is ECS02." > index.html
  • 您已經註冊網域名稱並完成備案。具體操作,請參見註冊阿里雲網域名稱ICP備案

本文VPC執行個體的相關配置如下所示,僅供參考。

單擊查看本文VPC的配置

配置

說明

名稱

VPC1

地區

華東2(上海)

IPv4網段

192.168.0.0/12

交換器

名稱:VSW1

可用性區域:可用性區域E

IPv4網段:192.168.5.0/24

名稱:VSW2

可用性區域:可用性區域G

IPv4網段:192.168.6.0/24

本文ECS執行個體的相關配置如下所示,僅供參考。

單擊查看本文ECS的配置

名稱

地區

所屬VPC

所屬可用性區域及交換器

ECS配置

ECS01

華東2(上海)

VPC1

可用性區域E | VSW1

鏡像:Alibaba Cloud Linux 3.2104 LTS 64位

ECS02

可用性區域G | VSW2

步驟一:建立NLB執行個體

  1. 登入網路型負載平衡NLB控制台
  2. 在頂部功能表列,選擇NLB執行個體所屬的地區。

  3. 執行個體頁面,單擊建立網路型負載平衡

  4. 網路型負載平衡(隨用隨付)購買頁面,完成以下配置。然後單擊立即購買並根據控制台提示完成執行個體開通。

    此處僅列出和本文強相關的配置項,其他未列出的配置項使用預設值。關於參數的更多資訊,請參見建立和管理NLB執行個體

    配置

    說明

    地區

    選擇執行個體所屬的地區。

    執行個體網路類型

    選擇執行個體網路類型,系統會根據您的選擇分配私網或公網服務地址。本文選擇公網

    VPC

    選擇執行個體所屬的VPC。

    可用性區域

    至少選擇2個可用性區域。本文選擇上海 可用性區域E及該可用性區域下的交換器,上海 可用性區域G及該可用性區域下的交換器。

    協議版本

    選擇執行個體的協議版本。本文選擇IPv4

    執行個體名稱

    自訂執行個體名稱。

    資源群組

    選擇所屬的資源群組。

    服務關聯角色

    首次建立NLB執行個體時,需要單擊建立服務關聯角色,建立一個名稱為AliyunServiceRoleForNlb的服務關聯角色。系統會為該角色添加名稱為AliyunServiceRolePolicyForNlb的權限原則,授予NLB擁有訪問其他雲產品執行個體的許可權。更多操作,請參見網路型負載平衡NLB系統權限原則參考

步驟二:建立伺服器組

  1. 在左側導覽列,選擇網路型負載均衡 NLB > 伺服器組

  2. 伺服器組頁面,單擊建立伺服器組

  3. 建立伺服器組對話方塊中,完成以下配置,然後單擊建立

    關鍵配置資訊可參考下表,其他未列出的配置項使用預設值。關於參數的更多資訊,請參見建立伺服器組

    配置

    說明

    伺服器群組類型

    伺服器組掛載的後端伺服器類型。本文選擇伺服器類型

    伺服器組名稱

    輸入伺服器組名稱。

    VPC

    從VPC下拉式清單中選擇一個VPC,只有該VPC下的伺服器可以加入到該伺服器組。

    選擇後端協議

    選擇一種後端協議。本文選擇TCP

    選擇調度演算法

    選擇一種調度演算法。本文選擇加權輪詢

    健全狀態檢查

    開啟健全狀態檢查,健全狀態檢查保持預設配置。

  4. 待伺服器組建立成功後,單擊其執行個體ID,然後單擊後端伺服器頁簽。

  5. 單擊添加後端伺服器,在添加後端伺服器面板,選中ECS01與ECS02,單擊下一步

  6. 在配置連接埠和權重設定精靈,配置連接埠為80,權重預設值為100,然後單擊確定

步驟三:配置監聽

  1. 在左側導覽列,選擇網路型負載均衡 NLB > 執行個體

  2. 執行個體頁面,單擊目標執行個體右側的建立監聽

  3. 負載平衡業務設定精靈配置監聽,配置以下參數,然後單擊下一步

    此處僅列出和本文強相關的配置項,其他未列出的配置項使用預設值。關於配置監聽的更多操作,請參見添加TCP監聽

    參數

    描述

    選擇監聽協議

    選擇監聽的協議類型。本文選擇TCP

    監聽連接埠

    用來接收請求並向後端伺服器進行請求轉寄的監聽連接埠。本文輸入80

    監聽名稱

    輸入自訂監聽名稱。

    高級配置

    本文保持預設,可單擊修改進行設定。

  4. 選擇伺服器組設定精靈,選擇伺服器類型伺服器類型下的目標伺服器組,查看已添加的後端伺服器資訊,然後單擊下一步

  5. 設定審核設定精靈,確認配置資訊,然後單擊提交

  6. 單擊知道了返回監聽頁簽,查看目標監聽的健全狀態檢查狀態列為正常時,表示後端伺服器ECS01和ECS02執行個體可以正常處理NLB執行個體轉寄的請求。

步驟四:設定網域名稱解析

實際業務情境中,建議您使用自有網域名稱,通過CNAME解析的方式將自有網域名稱指向NLB執行個體網域名稱。

  1. 在左側導覽列,選擇網路型負載均衡 NLB > 執行個體

  2. 執行個體頁面,複製已建立的NLB執行個體的DNS名稱。

  3. 執行以下步驟添加CNAME解析記錄。

    說明

    對於非阿里雲註冊網域名稱,需先將網域名稱添加到雲解析控制台,才可以進行網域名稱解析設定。具體操作,請參見網域名稱管理。如果您是阿里雲註冊的網域名稱,請直接執行以下步驟。

    1. 登入網域名稱解析控制台

    2. 權威網域名稱解析頁面,找到目標網域名稱,在操作列單擊解析設定

    3. 解析設定頁面,單擊添加記錄

    4. 添加記錄面板,配置以下資訊完成CNAME解析配置,然後單擊確定

      配置

      說明

      記錄類型

      在下拉式清單中選擇CNAME

      主機記錄

      您的網域名稱的首碼。本文輸入@

      說明

      建立網域名稱為根網域名稱時,主機記錄為@

      解析請求來源

      選擇預設。

      記錄值

      輸入欄位名對應的CNAME地址,此處為NLB執行個體的DNS名稱。

      TTL

      全稱Time To Live,表示DNS記錄在DNS伺服器上的緩衝時間,本文使用預設值。

步驟五:驗證結果

  1. 測試NLB可用性:

    1. 以任意一台可以訪問公網的Linux用戶端為例。如果未安裝telnet,以CentOS系統為例可以參考執行yum install -y telnet安裝telnet。

    2. 執行telnet 網域名稱 連接埠命令,收到回複報文Connected to nlb-...,則表示NLB可以將請求轉寄至後端伺服器。

      Trying *.*.*.*...
      Connected to www.example.com.
      Escape character is '^]'.

      通過瀏覽器輸入欄位名,例如http://網域名稱,可以看到類似下圖所示,表示NLB可以將請求轉寄至後端伺服器。

      image

  2. (可選)故障類比:

    1. 停用ECS01服務。在ECS01中執行systemctl stop nginx.service停用應用。

    2. 用戶端再次執行telnet 網域名稱 連接埠命令,仍然收到回複報文Connected to nlb-...

      Trying *.*.*.*...
      Connected to www.example.com.
      Escape character is '^]'.

      通過瀏覽器輸入欄位名,例如http://網域名稱,可以看到類似下圖所示,表示NLB可以將請求轉寄至後端伺服器。

      image

    3. 啟用ECS01服務,停用ECS02服務。在ECS01中執行systemctl start nginx.service重新啟動應用,在ECS02中執行systemctl stop nginx.service停用應用。

    4. 用戶端再次執行telnet 網域名稱 連接埠命令,仍然收到回複報文Connected to nlb-...

      Trying *.*.*.*...
      Connected to www.example.com.
      Escape character is '^]'.

      通過瀏覽器輸入欄位名,例如http://網域名稱,可以看到類似下圖所示,表示NLB可以將請求轉寄至後端伺服器。

      image

    5. 如上表明後端單台伺服器故障不影響NLB可用性。

釋放資源

  1. 清理ECS、安全性群組等資源:

    1. 刪除ECS01執行個體及其安全性群組:

      1. 登入Elastic Compute Service執行個體控制台,頂部選擇執行個體所屬地區,單擊ECS01執行個體右側的image.png,彈出的視窗中選擇釋放,立即釋放執行個體並確認。

      2. 登入Elastic Compute Service安全性群組控制台,頂部選擇執行個體所屬地區,勾選ECS01自訂安全性群組並單擊刪除,刪除安全性群組。

    2. 參照上述步驟,刪除ECS02執行個體及對應安全性群組資源。

  2. 刪除網域名稱解析記錄;

    刪除網域名稱解析記錄,請參見刪除網域名稱解析記錄

  3. 清理NLB資源:

    1. 登入網路型負載平衡NLB控制台,頂部選擇執行個體所屬地區,單擊執行個體右側的image.png,彈出的視窗中選擇釋放並確認。

    2. 登入網路型負載平衡NLB控制台,頂部選擇執行個體所屬地區,在伺服器組菜單單擊伺服器組右側的image.png,彈出的視窗中選擇刪除並確認。

  4. 清理VPC資源:

    1. 登入Virtual Private Cloud控制台,頂部選擇執行個體所屬地區。

    2. 單擊執行個體右側刪除,刪除時並且勾選強制移除,完成VPC與交換器資源的刪除。

相關文檔