設定區域性內部應用程式負載平衡器,並連結外部後端

本指南說明如何設定區域內部應用程式負載平衡器,將要求 Proxy 至外部後端。外部後端是指 Google Cloud外部的端點。

在按照本指南操作之前,請先詳閱網際網路 NEG 總覽說明文件,包括限制

下方的架構圖顯示區域內部應用程式負載平衡器前端,以及外部後端。

具有外部後端的區域性內部應用程式負載平衡器。
圖 1. 具有外部後端的區域性內部應用程式負載平衡器 (按一下即可放大)。

權限

如要按照本指南操作,您必須在專案中建立網際網路 NEG,以及建立或修改應用程式負載平衡器。因此您必須是專案擁有者或編輯者 (roles/ownerroles/editor),或是應具有以下所有 Compute Engine 身分與存取權管理角色

工作 必要角色
建立及修改負載平衡器元件 Compute 網路管理員
(roles/compute.networkAdmin)
建立及修改 NEG Compute 執行個體管理員
(roles/compute.instanceAdmin)

在外部設定外部後端環境 Google Cloud

如要設定外部後端環境,請參閱下列章節。

設定網路端點

設定網路端點,將外部後端公開給Google Cloud。請確認端點 (IP:Port 組合或完整網域名稱 (FQDN) 和通訊埠) 可透過網際網路連線。這個端點稍後會從網際網路 NEG 參照。

如要瞭解網際網路 NEG 端點的詳細設定需求,請參閱「網際網路 NEG 總覽」。

允許外部後端接收來自 Google Cloud的流量

建立僅限 Proxy 的子網路並設定 Cloud NAT 閘道後,即可完成這個步驟。

如要允許 Google Cloud 的要求連線至外部後端,請按照下列步驟操作:

  1. 設定 Cloud NAT 閘道,並指定用於從 Google Cloud傳出流量的 IP 位址。閘道會將僅限 Proxy 的子網路範圍對應至外部 IP 位址。如需操作步驟,請參閱「設定 Cloud NAT 閘道」。
  2. 確認外部後端環境已設為允許流量從 Google Cloud 傳送至外部後端。舉例來說,如果您為 NAT 閘道使用預先保留的 IP 位址,請在外部環境中將這些 IP 位址加入允許清單。您可能需要與外部環境的網路或安全管理員合作,才能完成這項設定。

設定 Google Cloud 環境

您需要具有兩個子網路的虛擬私有雲網路:一個用於負載平衡器元件,另一個用於區域的僅限 Proxy 子網路。接著,您會建立負載平衡器,並使用網際網路 NEG 後端。

建立虛擬私有雲網路和子網路

這個子網路用於建立負載平衡器的元件。

Cloud 控制台

  1. 在 Google Cloud 控制台中,前往「VPC networks」(虛擬私有雲網路) 頁面。
    前往「VPC networks」(虛擬私有雲網路)
  2. 按一下「建立虛擬私有雲網路」
  3. 輸入「名稱」LB_NETWORK
  4. 在「Subnets」(子網路) 區段中:
    • 將「Subnet creation mode」(子網路建立模式) 設為 [Custom] (自訂)
    • 在「New subnet」(新的子網路) 區段中,輸入以下資訊:
      • Name (名稱):LB_SUBNET_NAME
      • Region (區域):REGION
      • IP address range (IP 位址範圍):LB_SUBNET_RANGE
    • 按一下 [完成]
  5. 點選「建立」

gcloud

  1. 使用 gcloud compute networks create 指令建立自訂虛擬私有雲網路:

    gcloud compute networks create LB_NETWORK \
      --subnet-mode=custom
    
  2. LB_NETWORK網路中建立子網路。

    gcloud compute networks subnets create LB_SUBNET_NAME \
      --network=LB_NETWORK \
      --range=LB_SUBNET_RANGE \
      --region=REGION
    

設定僅限 Proxy 的子網路

REGION 區域中的所有區域 Envoy 型負載平衡器都會使用這個僅限 Proxy 的子網路。

主控台

  1. 在 Google Cloud 控制台中,前往「VPC networks」(虛擬私有雲網路) 頁面。
    前往「VPC networks」(虛擬私有雲網路)
  2. 從清單中選取「網路」
  3. 按一下 [新增子網路]
  4. 輸入「名稱」PROXY_ONLY_SUBNET_NAME
  5. 選取「區域」REGION
  6. 將「用途」設為「區域受管理 Proxy」
  7. 輸入「IP address range」(IP 位址範圍)PROXY_ONLY_SUBNET_RANGE
  8. 按一下「新增」

gcloud

使用 gcloud compute networks subnets create 指令建立僅限 Proxy 的子網路。

gcloud compute networks subnets create PROXY_ONLY_SUBNET_NAME \
  --purpose=REGIONAL_MANAGED_PROXY \
  --role=ACTIVE \
  --region=REGION \
  --network=LB_NETWORK \
  --range=PROXY_ONLY_SUBNET_RANGE

設定 Cloud NAT 閘道

設定 Cloud NAT 閘道前,請務必詳閱相關限制和定價考量。詳情請參閱「區域 NEG:使用 Cloud NAT 閘道」。

下列指令說明如何設定 Cloud NAT 閘道。您可以將 Cloud NAT 閘道設為使用自動 NAT 外部 IP 位址 (根據需求分配),或是使用手動預先保留的一組外部 IP 位址。閘道會將僅限 Proxy 的子網路範圍對應至外部 IP 位址。

設定自動分配的 NAT IP 位址

建立 Cloud NAT 閘道並自動分配 NAT IP 位址時,您可以指定 Cloud NAT 閘道分配 IP 位址的網路服務級別 (進階級或標準級)。

主控台

  1. 前往 Google Cloud 控制台的「Cloud NAT」頁面。

    前往 Cloud NAT

  2. 按一下「開始使用」或「建立 Cloud NAT 閘道」

  3. 輸入閘道名稱 LB_NAT_CONFIG

  4. 在「NAT type」(NAT 類型) 中,選取「Public」(公開)

  5. 在「Network」(網路) 清單中選取「LB_NETWORK」。

  6. 在「Region」(區域) 清單中選取「REGION」。

  7. 在該區域中建立 Cloud Router。

  8. 在「來源端點類型」中,選取「受管理 Proxy 負載平衡器」

  9. 在「來源」清單中,選取「自訂」

    • 在「Subnets」(子網路) 中,選取 PROXY_ONLY_SUBNET_NAME
  10. 在「Cloud NAT IP addresses」(Cloud NAT IP 位址) 清單中,選取「Automatic (recommended)」(自動 (建議))

  11. 在「Network service tier」(網路服務級別) 部分,選擇「Premium」(進階級) 或「Standard」(標準級)。

  12. 點選「建立」

gcloud

如果外部後端環境不需要您將特定 IP 位址加入允許清單,允許這些 IP 位址將流量傳送至外部後端,請使用動態分配的 IP 位址。 Google Cloud

  1. 建立 Cloud Router:

    gcloud beta compute routers create ROUTER_NAME \
      --network=LB_NETWORK \
      --region=REGION
  2. 設定 Cloud NAT 閘道。

    gcloud beta compute routers nats create LB_NAT_CONFIG \
      --router=ROUTER_NAME \
      --endpoint-types=ENDPOINT_TYPE_MANAGED_PROXY_LB \
      --nat-custom-subnet-ip-ranges=PROXY_ONLY_SUBNET_NAME \
      --auto-allocate-nat-external-ips \
      --region=REGION
    

更改下列內容:

  • LB_NAT_CONFIG:NAT 設定的名稱。

  • ROUTER_NAME:Cloud Router 的名稱。

  • REGION:要建立 NAT 的區域。如未指定,系統可能會提示您選取區域 (僅限互動模式)。

  • PROXY_ONLY_SUBNET_NAME:僅限 Proxy 子網路的名稱。

設定手動分配的 IP 位址

只有在外部後端環境要求您使用特定 Google Cloud IP 位址的允許清單時,才使用手動分配的 IP 位址。如果外部後端環境不需要許可清單,請改用動態分配,如先前所示。

建立 Cloud NAT 閘道時,您可以選擇從「進階」或「標準」層級手動指派 NAT IP 位址,或同時從這兩個層級指派,但須符合特定條件

主控台

  1. 前往 Google Cloud 控制台的「Cloud NAT」頁面。

    前往 Cloud NAT

  2. 按一下「開始使用」或「建立 Cloud NAT 閘道」

  3. 輸入閘道名稱 LB_NAT_CONFIG

  4. 在「Network」(網路) 清單中選取「LB_NETWORK」。

  5. 在「Region」(區域) 清單中選取「REGION」。

  6. 在該區域中選取或建立 Cloud Router。

  7. 在「來源端點類型」中,選取「受管理 Proxy 負載平衡器」

  8. 在「來源」清單中,選取「自訂」

    • 在「子網路」中,選取 PROXY_ONLY_SUBNET_NAME
  9. 在「Cloud NAT IP addresses」(Cloud NAT IP 位址) 清單中,選取「Manual」(手動)

  10. 在「Network service tier」(網路服務級別) 部分,選擇「Premium」(進階級) 或「Standard」(標準級)。

  11. 選取或建立靜態預留外部 IP 位址,以用於 NAT。

  12. 如要指定其他 IP 位址,請按一下「新增 IP 位址」,然後選取或建立其他靜態保留外部 IP 位址。

  13. 點選「建立」

gcloud

  1. 建立 IP 位址。由於閘道會執行一對一 NAT 轉譯,因此請務必確認保留的 IP 位址集區夠大,足以處理預期的流量。如果分配的 NAT IP 位址不足,可能會導致流量遺失。

    gcloud compute addresses create IP_ADDRESS_NAME_1 IP_ADDRESS_NAME_2 [IP_ADDRESS_NAME_3 ...] \
      --region=REGION
    
  2. 建立 Cloud Router:

    gcloud compute routers create ROUTER_NAME \
      --network=LB_NETWORK \
      --region=REGION
  3. 設定 Cloud NAT 閘道。

    gcloud beta compute routers nats create LB_NAT_CONFIG \
      --router=ROUTER_NAME \
      --endpoint-types=ENDPOINT_TYPE_MANAGED_PROXY_LB \
      --nat-custom-subnet-ip-ranges=PROXY_ONLY_SUBNET_NAME \
      --nat-external-ip-pool=IP_ADDRESS_NAME_1,IP_ADDRESS_NAME_2,[IP_ADDRESS_NAME_3 ...] \
      --region=REGION
    

    更改下列內容:

  • LB_NAT_CONFIG:NAT 設定的名稱。

  • ROUTER_NAME:Cloud Router 的名稱。

  • PROXY_ONLY_SUBNET_NAME:僅限 Proxy 子網路的名稱。

  • REGION:要建立 NAT 的區域。如未指定,系統可能會提示您選取區域 (僅限互動模式)。

設定動態通訊埠分配

更新 Cloud NAT 閘道,改用動態通訊埠分配模式,充分運用指派的 IP 位址。

gcloud

  1. 更新 Cloud NAT 閘道。建議將通訊埠數量下限設為 2048,上限設為 4096。

    gcloud compute routers nats update LB_NAT_CONFIG \
        --router=ROUTER_NAME \
        --enable-dynamic-port-allocation \
        --min-ports-per-vm=MIN_PORTS_PER_VM \
        --max-ports-per-vm=MAX_PORTS_PER_VM \
        --region=REGION
    
  2. 確認已啟用動態通訊埠分配功能,並設定通訊埠數量下限和上限。

    gcloud compute routers nats describe LB_NAT_CONFIG \
         --router=ROUTER_NAME \
         --region=REGION
    

    輸出結果會與下列內容相似:

    enableDynamicPortAllocation: true
    enableEndpointIndependentMapping: false
    endpointTypes:
    ‐ ENDPOINT_TYPE_MANAGED_PROXY_LB
    logConfig:
      enable: true
      filter: ALL
    maxPortsPerVm: 4096
    minPortsPerVm: 2048
    name: LB_NAT_CONFIG
    natIpAllocateOption: MANUAL_ONLY
    natIps:
    ‐ https://www.googleapis.com/compute/projects/PROJECT_NAME/regions/REGION/addresses/ADDRESS
    sourceSubnetworkIpRangesToNat: ALL_SUBNETWORKS_ALL_IP_RANGES
    type: PUBLIC
    

詳情請參閱 Cloud NAT 說明文件中的「指定 NAT 的子網路範圍」。

請務必在外部後端環境中,使用 NAT IP 位址範圍的允許清單,讓外部後端可以接收來自 Google Cloud的流量。

保留負載平衡器的 IP 位址

為負載平衡器保留內部 IP 位址。

主控台

您可以使用Google Cloud 控制台保留獨立內部 IP 位址。

  1. 前往「VPC networks」(VPC 網路) 頁面。

    前往「VPC networks」(虛擬私有雲網路)

  2. 按一下用於設定環境間混合式連線的網路。
  3. 按一下「靜態內部 IP 位址」,然後按一下「保留靜態位址」
  4. 輸入「名稱」LB_IP_ADDRESS
  5. 在「Subnet」(子網路) 中,選取 LB_SUBNET_NAME
  6. 如要指定要保留的 IP 位址,請在「Static IP address」(靜態 IP 位址) 下方選取「Let me choose」(自行選擇),然後填入「Custom IP address」(自訂 IP 位址)。否則,系統會自動從子網路中為您指派 IP 位址。
  7. 如要將這個 IP 位址用於多個轉送規則,請在「用途」下方選擇「共用」
  8. 按一下「預訂」即可完成程序。

gcloud

  1. 使用 gcloud CLI 執行 compute addresses create 指令

    gcloud compute addresses create LB_IP_ADDRESS \
      --region=REGION \
      --subnet=LB_SUBNET_NAME
    
  2. 使用 compute addresses describe 指令 查看已分配的 IP 位址:

    gcloud compute addresses describe LB_IP_ADDRESS \
      --region=REGION
    

設定網際網路 NEG

您可以透過 INTERNET_FQDN_PORT 端點或 INTERNET_IP_PORT 端點建立網際網路 NEG。

主控台

建立具有 INTERNET_FQDN_PORT 個端點的 NEG

  1. 前往 Google Cloud 控制台的「網路端點群組」頁面。

    前往網路端點群組

  2. 按一下「建立網路端點群組」

  3. 為網際網路 NEG 指定 INTERNET_NEG_NAME。詳情請參閱「資源命名慣例」。

  4. 在「網路端點群組類型」清單中,選取「網路端點群組 (網際網路)」,然後執行下列操作:

    • 在「範圍」清單中選取「區域」
    • 選用:在「Region」(區域) 清單中,變更這個 NEG 的 REGION
    • 在「Network」(網路) 清單中選取「LB_NETWORK」。
    • 在「預設連接埠」方塊中輸入 DEFAULT_PORT_NUMBER
    • 在「Add endpoints through」清單中,選取「Fully qualified domain name and port」
  5. 選取 [Create] (建立)。

INTERNET_FQDN_PORT 端點新增至 NEG

  1. 前往 Google Cloud 控制台的「網路端點群組」頁面。

    前往網路端點群組

  2. 按一下「INTERNET_NEG_NAME」。
  3. 輸入完整網域名稱,例如 myorg.example.com。您必須以標準 FQDN 語法指定 FQDN 物件。

  4. 選用:在「通訊埠類型」中,選取「自訂」。 如果「通訊埠類型」Default,系統會使用 NEG 的預設通訊埠。

  5. 在「Port number」(通訊埠編號) 方塊中輸入 PORT_NUMBER_1
  6. 選取 [Create] (建立)。

建立具有 INTERNET_IP_PORT 個端點的 NEG

  1. 前往 Google Cloud 控制台的「網路端點群組」頁面。

    前往網路端點群組

  2. 按一下「建立網路端點群組」

  3. 指定網際網路 NEG 的名稱 INTERNET_NEG_NAME 。詳情請參閱「資源命名慣例」。

  4. 在「網路端點群組類型」清單中,選取「網路端點群組 (網際網路)」,然後執行下列操作:

    • 在「範圍」清單中選取「區域」
    • 選用:在「Region」(區域) 清單中,變更這個 NEG 的 REGION
    • 在「Network」(網路) 清單中選取「LB_NETWORK」。
    • 在「預設連接埠」方塊中輸入 DEFAULT_PORT_NUMBER
    • 在「Add endpoints through」(透過以下方式新增端點) 清單中,選取「IP and port」(IP 和通訊埠)
  5. 選取 [Create] (建立)。

INTERNET_IP_PORT 端點新增至 NEG

  1. 前往 Google Cloud 控制台的「網路端點群組」頁面。

    前往網路端點群組

  2. 按一下「INTERNET_NEG_NAME」。
  3. 在「IP address」(IP 位址) 欄位中輸入 IP_ADDRESS_1
  4. 選用:在「Port type」(通訊埠類型) 清單中,選取「Custom」(自訂)。 如果「通訊埠類型」Default,系統會使用 NEG 的預設通訊埠。

  5. 在「Port number」(通訊埠編號) 欄位中,輸入 PORT_NUMBER_1
  6. 選取 [Create] (建立)。

gcloud

如要建立具有 INTERNET_FQDN_PORT 端點的 NEG,請按照下列步驟操作:

  1. 建立 NEG 資源。

    gcloud beta compute network-endpoint-groups create INTERNET_NEG_NAME \
        --network-endpoint-type=INTERNET_FQDN_PORT \
        --default-port=DEFAULT_PORT_NUMBER \
        --network=LB_NETWORK \
        --region=REGION
    
  2. 將端點新增到 NEG。如果未指定通訊埠,系統會使用 NEG 的預設通訊埠。

    gcloud beta compute network-endpoint-groups update INTERNET_NEG_NAME \
        --add-endpoint="fqdn=FULLY_QUALIFIED_DOMAIN_NAME_1,port=PORT_NUMBER_1" \
        [--add-endpoint="fqdn=FULLY_QUALIFIED_DOMAIN_NAME_2,port=PORT_NUMBER_2" \]
        --region=REGION
    

    更改下列內容:

    • FULLY_QUALIFIED_DOMAIN_NAME:端點的完整網域名稱
    • PORT_NUMBER:端點的通訊埠號碼

    每個 NEG 最多可新增 256 個端點。

如果網域可透過網際網路解析,則不需要其他設定即可設定 DNS。不過,如果您使用私人 FQDN,則需要設定 Cloud DNS,以利 DNS 解析。名稱必須代管於 Cloud DNS,或可透過 DNS 轉送從 Cloud DNS 解析至內部部署 DNS。

首先,請建立 Cloud DNS 區域,代管專案中的 DNS 記錄。然後將 DNS 記錄新增至該區域。如需具體設定步驟,請參閱 Cloud DNS 說明文件

如要建立具有 INTERNET_IP_PORT 端點的 NEG,請按照下列步驟操作:

  1. 建立 NEG 資源。

    gcloud beta compute network-endpoint-groups create INTERNET_NEG_NAME \
        --network-endpoint-type=INTERNET_IP_PORT \
        --default-port=DEFAULT_PORT_NUMBER \
        --network=LB_NETWORK \
        --region=REGION
    
  2. 將端點新增到 NEG。如果未指定通訊埠,系統會使用 NEG 的預設通訊埠。

    gcloud beta compute network-endpoint-groups update INTERNET_NEG_NAME \
        --add-endpoint="ip=IP_ADDRESS_1,port=PORT_NUMBER_1" \
        [--add-endpoint="ip=IP_ADDRESS_2,port=PORT_NUMBER_2" \]
        --region=REGION
    

    更改下列內容:

    • IP_ADDRESS:端點的 IP 位址
    • PORT_NUMBER:端點的通訊埠號碼

    您可以重複這個步驟,每個 NEG 最多可新增 256 個端點。

建立負載平衡器

主控台

選取負載平衡器類型

  1. 前往 Google Cloud 控制台的「Load balancing」(負載平衡)頁面。

    前往「Load balancing」(負載平衡) 頁面

  2. 點選「建立負載平衡器」
  3. 在「Type of load balancer」(負載平衡器類型) 部分,選取「Application Load Balancer (HTTP/HTTPS)」(應用程式負載平衡器 (HTTP/HTTPS)),然後點選「Next」(下一步)
  4. 在「公開或內部」部分,選取「內部」,然後點選「下一步」
  5. 在「Cross-region or single region deployment」(跨區域或單一區域部署) 部分,選取「Best for regional workloads」(最適合區域工作負載),然後點選「Next」(下一步)
  6. 按一下 [設定]

基本設定

  1. 輸入負載平衡器名稱
  2. 在「Region」(區域) 中選取 REGION
  3. 在「Network」(網路) 中選取 LB_NETWORK

保留僅限 Proxy 子網路

如要保留僅限 Proxy 的子網路,請按照下列步驟操作:

  1. 按一下「保留子網路」
  2. 在「Name」(名稱) 中輸入 PROXY_ONLY_SUBNET_NAME
  3. 在「IP address range」(IP 位址範圍) 中,輸入 PROXY_ONLY_SUBNET_RANGE
  4. 按一下「新增」

前端設定

  1. 按一下「前端設定」
  2. 輸入「名稱」
  3. 在「Subnetwork」(子網路) 中,選取 LB_SUBNET_NAME
  4. 如要建立 HTTPS 負載平衡器,您必須擁有 SSL 憑證。 建議使用 Google 代管的憑證。

    屬性 值 (按照指示輸入值或選取選項)
    通訊協定 HTTPS
    IP 版本 IPv4
    IP 位址 選取先前預留的 IP 位址:LB_IP_ADDRESS
    通訊埠 443
    憑證

    選取現有 SSL 憑證或建立新憑證。

    如要建立 HTTPS 負載平衡器,您必須具備要在 HTTPS Proxy 中使用的 SSL 憑證資源。

    如要測試這個程序,但不想設定 SSL 憑證資源 (或 Google 管理憑證所需的網域),可以設定 HTTP 負載平衡器。

    如要建立 HTTP 負載平衡器,請確認下列選項已設為指定的值:

    屬性 值 (按照指示輸入值或選取選項)
    通訊協定 HTTP
    IP 版本 IPv4
    IP 位址 選取先前預留的 IP 位址:LB_IP_ADDRESS
    通訊埠 80
  5. 按一下 [完成]

後端設定

  1. 按一下「後端設定」
  2. 按一下「後端服務和後端值區」
  3. 按一下「建立後端服務」
  4. 輸入名稱。
  5. 在「Backend type」(後端類型) 部分,選取「Internet network endpoint group」(網際網路網路端點群組)
  6. 在「通訊協定」部分,選取您要從負載平衡器連線至網際網路 NEG 時使用的通訊協定。
  7. 在「Backends」(後端) 的「New backend」(新增後端) 視窗中,選取上一個步驟建立的「Regional internet network endpoint group」(區域網際網路網路端點群組)
  8. 按一下 [完成]
  9. 設定健康狀態檢查:
    1. 在「健康狀態檢查」部分,選取「建立健康狀態檢查」
    2. 將健康狀態檢查名稱設為 HTTP_HEALTH_CHECK_NAME
    3. 在「通訊協定」部分選取「HTTP」
    4. 將「Port」(通訊埠) 設為 80
  10. 點選「建立」

檢查並完成

  1. 按一下「檢查並完成」
  2. 確認一切無誤後,請按一下「建立」

gcloud

  1. 選用:建立健康狀態檢查。外部後端的健康狀態檢查探測會使用分散式 Envoy 健康狀態檢查,並在稍後經過 NAT 轉換。
    gcloud compute health-checks create http HTTP_HEALTH_CHECK_NAME \
        --region=REGION \
        --use-serving-port
    
  2. 建立後端服務:
    gcloud compute backend-services create BACKEND_SERVICE \
        --load-balancing-scheme=INTERNAL_MANAGED \
        --protocol=HTTP \
        --health-checks=HTTP_HEALTH_CHECK_NAME \
        --health-checks-region=REGION \
        --region=REGION
    
  3. 將網際網路 NEG 新增至後端服務:
    gcloud compute backend-services add-backend BACKEND_SERVICE \
        --network-endpoint-group=INTERNET_NEG_NAME \
        --network-endpoint-group-region=REGION \
        --region=REGION
    
  4. 建立網址對應,將連入要求轉送至後端服務:
    gcloud compute url-maps create URL_MAP_NAME \
        --default-service=BACKEND_SERVICE \
        --region=REGION
    
  5. 選用:如果您在用戶端和負載平衡器之間使用 HTTPS,請執行這個步驟。HTTP 負載平衡器不需要執行這個步驟。

    您可以建立 Compute Engine 或 Certificate Manager 憑證。您可以使用下列任一方法,透過 Certificate Manager 建立憑證:

    建立憑證後,請直接將憑證附加至目標 Proxy。

    如要建立 Compute Engine 自行管理的 SSL 憑證資源,請按照下列步驟操作:
    gcloud compute ssl-certificates create SSL_CERTIFICATE_NAME \
        --certificate CRT_FILE_PATH \
        --private-key KEY_FILE_PATH
    
  6. 建立目標 HTTP(S) Proxy,將要求轉送至網址對應。

    如果是 HTTP 負載平衡器,請建立 HTTP 目標 Proxy:

    gcloud compute target-http-proxies create TARGET_HTTP_PROXY_NAME \
        --url-map=URL_MAP_NAME \
        --region=REGION
    

    如果是 HTTPS 負載平衡器,請建立 HTTPS 目標 Proxy。Proxy 是負載平衡器的一部分,用於保存 HTTPS 負載平衡的 SSL 憑證,因此您還可以在此步驟中載入憑證。

    gcloud compute target-https-proxies create TARGET_HTTPS_PROXY_NAME \
        --ssl-certificates=SSL_CERTIFICATE_NAME \
        --url-map=URL_MAP_NAME \
        --region=REGION
    
  7. 建立轉送規則,將連入要求轉送至 Proxy。

    HTTP 負載平衡器:

    gcloud compute forwarding-rules create HTTP_FORWARDING_RULE_NAME \
        --load-balancing-scheme=INTERNAL_MANAGED \
        --network-tier=PREMIUM \
        --network=LB_NETWORK \
        --subnet=LB_SUBNET_NAME \
        --address=LB_IP_ADDRESS \
        --target-http-proxy=TARGET_HTTP_PROXY_NAME \
        --target-http-proxy-region=REGION \
        --region=REGION \
        --ports=80
    

    如果是 HTTPS 負載平衡器:

    gcloud compute forwarding-rules create HTTPS_FORWARDING_RULE_NAME \
        --load-balancing-scheme=INTERNAL_MANAGED \
        --network-tier=PREMIUM \
        --network=LB_NETWORK \
        --subnet=LB_SUBNET_NAME \
        --address=LB_IP_ADDRESS \
        --target-https-proxy=TARGET_HTTPS_PROXY_NAME \
        --target-https-proxy-region=REGION \
        --region=REGION \
        --ports=443
    

將網域連結至負載平衡器

建立負載平衡器後,請記下與負載平衡器相關聯的 IP 位址,例如 30.90.80.100。如要將網域指向負載平衡器,請使用網域註冊服務建立 A 記錄。如果 SSL 憑證中新增了多個網域,請為每個網域新增 A 記錄,並全部指向負載平衡器的 IP 位址。舉例來說,如要為 www.example.comexample.com 建立 A 記錄,請使用下列指令:

NAME                  TYPE     DATA
www                   A        30.90.80.100
@                     A        30.90.80.100

如果您使用 Cloud DNS 做為 DNS 供應商,請參閱「新增、修改及刪除記錄」。

測試負載平衡器

負載平衡器設定完成後,即可開始將流量傳送至負載平衡器的 IP 位址。

建立用戶端 VM

這個範例會在與負載平衡器相同的地區中建立用戶端 VM (vm-client)。該用戶端用於驗證負載平衡器的設定,以及示範預期行為。

gcloud

用戶端 VM 可以位於與負載平衡器相同 REGION 的任何區域中,也可以使用相同 VPC 網路中的任何子網路。

gcloud compute instances create vm-client \
    --image-family=debian-12 \
    --image-project=debian-cloud \
    --tags=allow-ssh \
    --network=LB_NETWORK \
    --subnet=LB_SUBNET_NAME \
    --zone=ZONE

將流量傳送至負載平衡器

首次部署負載平衡器後,負載平衡器設定可能需要幾分鐘才會生效。

  • 使用 SSH 連線至用戶端執行個體。

    gcloud compute ssh vm-client \
      --zone=ZONE
    
  • 確認負載平衡器是否如預期連線至外部後端執行的應用程式。

    如要測試 HTTP,請執行:

    curl IP_ADDRESS
    

    如要測試 HTTPS,請執行下列指令:

    curl -k -s 'https://TEST_DOMAIN_URL:443' --connect-to TEST_DOMAIN_URL:443:IP_ADDRESS:443
    

    TEST_DOMAIN_URL 替換為與應用程式相關聯的網域。例如:test.example.com

    -k 旗標會讓 curl 略過憑證驗證。

額外設定

本節會延伸說明設定範例,並提供替代和其他設定選項。所有工作都是選擇性的。您可以按任何順序執行這些工作。

如要為區域內部應用程式負載平衡器啟用更多功能,例如全域存取權 (如果用戶端位於不同區域),請參閱「使用 VM 執行個體群組後端設定內部應用程式負載平衡器:其他設定」。

使用自訂標頭驗證要求

如要驗證傳送至外部後端的要求,可以設定自訂標頭,指出要求來自 Google Cloud 負載平衡器。您也需要設定外部後端,以便在來自 Google Cloud的流量中加入這個自訂標頭。

如要瞭解如何設定自訂標頭,請參閱「設定進階流量管理」。

如需其他驗證方法,請參閱驗證對外部後端的請求

更新用戶端 HTTP 保持運作逾時

先前步驟中建立的負載平衡器已設定 用戶端 HTTP 保持連線逾時的預設值。

如要更新用戶端 HTTP 保持連線逾時,請按照下列操作說明操作。

控制台

  1. 前往 Google Cloud 控制台的「Load balancing」(負載平衡)頁面。

    前往「Load balancing」(負載平衡)

  2. 按一下要修改的負載平衡器名稱。
  3. 按一下「編輯」
  4. 按一下「前端設定」
  5. 展開「進階功能」。在「HTTP 保持運作逾時」部分, 輸入逾時值。
  6. 按一下「更新」
  7. 如要檢查變更,請依序按一下「檢查並完成」和「更新」

gcloud

如果是 HTTP 負載平衡器,請使用 gcloud compute target-http-proxies update 指令更新目標 HTTP Proxy。

      gcloud compute target-http-proxies update TARGET_HTTP_PROXY_NAME \
          --http-keep-alive-timeout-sec=HTTP_KEEP_ALIVE_TIMEOUT_SEC \
          --region=REGION
      

如果是 HTTPS 負載平衡器,請使用 gcloud compute target-https-proxies update 指令更新目標 HTTPS Proxy。

      gcloud compute target-https-proxies update TARGET_HTTP_PROXY_NAME \
          --http-keep-alive-timeout-sec=HTTP_KEEP_ALIVE_TIMEOUT_SEC \
          --region REGION
      

更改下列內容:

  • TARGET_HTTP_PROXY_NAME:目標 HTTP Proxy 的名稱。
  • TARGET_HTTPS_PROXY_NAME:目標 HTTPS Proxy 的名稱。
  • HTTP_KEEP_ALIVE_TIMEOUT_SEC:HTTP 保持運作逾時值,範圍為 5 到 600 秒。

後續步驟