如要瞭解一般概念,請參閱「外部應用程式負載平衡器總覽」。
如果您是傳統版應用程式負載平衡器的現有使用者,預計以全域外部應用程式負載平衡器執行新部署作業時,請務必參閱「遷移作業總覽」。
如要直接在 Google Cloud 控制台中,按照這項工作的逐步指南操作,請按一下「Guide me」(逐步引導):
負載平衡器拓撲
如果是 HTTPS 負載平衡器,請建立下圖所示的設定。
如果是 HTTP 負載平衡器,請建立下圖所示的設定。
圖表中的事件順序如下:
- 用戶端將內容要求傳送至轉送規則中定義的外部 IPv4 位址。
如果是 HTTPS 負載平衡器,轉送規則會將要求導向目標 HTTP Proxy。
如果是 HTTP 負載平衡器,轉送規則會將要求導向目標 HTTP Proxy。
目標 Proxy 使用網址對應中的規則,判斷由哪一個後端服務接收所有要求。
負載平衡器判斷該後端服務只有一個執行個體群組,並將要求導向該群組中的虛擬機器 (VM) 執行個體。
VM 提供使用者要求的內容。
事前準備
請先完成下列步驟,再建立負載平衡器。
設定 SSL 憑證資源
如果是 HTTPS 負載平衡器,請按照下列說明建立 SSL 憑證資源:
建議使用 Google 代管的憑證。
這個範例假設您已有名為 www-ssl-cert 的 SSL 憑證資源。
設定權限
為完成本指南的步驟,您必須具備權限,可在專案中建立 Compute Engine 執行個體、防火牆規則和預留 IP 位址,例如具有專案擁有者或編輯者角色,或者具有下列 Compute Engine IAM 角色。
| 工作 | 必要角色 |
|---|---|
| 建立執行個體 | 執行個體管理員 |
| 新增與移除防火牆規則 | 安全管理員 |
| 建立負載平衡器元件 | 網路管理員 |
| 建立專案 (選用) | 專案建立者 |
如需詳細資訊,請參閱下列指南:
選用:使用 BYOIP 位址
如果使用自備 IP 位址 (BYOIP),可將自己的公開位址匯入Google Cloud ,與 Google Cloud 資源搭配使用。舉例來說,如果匯入多個自己的 IPv4 位址,設定負載平衡器時,就可以將其中一個位址指派給轉送規則。按照本文的操作說明設定負載平衡器時,請在「IP 位址」提供 BYOIP 位址。
如要進一步瞭解如何使用 BYOIP,請參閱「自備 IP 位址」。
設定網路和子網路
如要建立範例網路和子網路,請按照以下步驟操作。
控制台
如要同時支援 IPv4 和 IPv6 流量,請按照下列步驟操作:
前往 Google Cloud 控制台的「VPC Networks」(虛擬私有雲網路) 頁面。
按一下「Create VPC network」(建立虛擬私有雲網路)。
輸入網路的「Name」(名稱)。
選用:如要在這個網路的子網路上設定內部 IPv6 位址範圍,請完成下列步驟:
- 在「虛擬私有雲網路 ULA 內部 IPv6 範圍」部分,選取「已啟用」。
在「Allocate internal IPv6 range」(分配內部 IPv6 範圍) 部分,選取「Automatically」(自動) 或「Manually」(手動)。
如果選取「手動」,請在
fd20::/20範圍內輸入/48範圍。如果該範圍正在使用中,系統會提示您提供其他範圍。
在「Subnet creation mode」(子網路建立模式) 中,選擇「Custom」(自訂)。
在「New subnet」(新的子網路) 部分,設定下列欄位:
- 在「Name」(名稱) 欄位中,輸入子網路的名稱。
- 在「Region」(區域) 欄位中選取區域。
- 在「IP stack type」(IP 堆疊類型),選取「IPv4 and IPv6 (dual-stack)」(IPv4 和 IPv6 (雙重堆疊))。
在「IP 位址範圍」欄位中輸入 IP 位址範圍。這是子網路的主要 IPv4 範圍。
雖然您可以為子網路設定 IPv4 位址範圍,但無法選擇子網路的 IPv6 位址範圍。Google 提供固定大小 (
/64) 的 IPv6 CIDR 區塊。在「IPv6 存取權類型」部分,選取「外部」。
按一下「完成」。
點選「建立」。
如要僅支援 IPv4 流量,請按照下列步驟操作:
前往 Google Cloud 控制台的「VPC Networks」(虛擬私有雲網路) 頁面。
按一下「建立虛擬私有雲網路」。
在「Name」(名稱) 欄位中,輸入網路名稱。
在「Subnet creation mode」(子網路建立模式) 中,選擇「Custom」(自訂)。
在「New subnet」(新的子網路) 區段,設定下列項目:
- 在「Name」(名稱) 欄位中,輸入子網路的名稱。
- 在「Region」(區域) 欄位中選取區域。
- 在「IP stack type」(IP 堆疊類型),選取「IPv4 (single-stack)」(IPv4 (單一堆疊))。
- 在「IP 位址範圍」欄位中,輸入子網路的主要 IPv4 範圍。
按一下「完成」。
點選「建立」。
gcloud
建立自訂模式虛擬私有雲網路:
gcloud compute networks create NETWORK \ --subnet-mode=custom在網路中,為後端建立子網路。
如要支援 IPv4 和 IPv6 流量,請使用下列指令更新子網路:
gcloud compute networks subnets create SUBNET \ --stack-type=IPV4_IPV6 \ --ipv6-access-type=EXTERNAL \ --network=NETWORK \ --range=IPV4_RANGE \ --region=REGION_A
如要僅使用 IPv4 流量,請使用下列指令:
gcloud compute networks subnets create SUBNET \ --network=NETWORK \ --stack-type=IPV4_ONLY \ --range=IPV4_RANGE \ --region=REGION_A
更改下列內容:
NETWORK:虛擬私有雲網路的名稱IPV4_RANGE:新子網路的主要 IPv4 範圍,採用 CIDR 標記法。例如:10.1.2.0/24。SUBNET:子網路的名稱
REGION_A:區域名稱
建立代管執行個體群組
您的 VM 必須屬於某個執行個體群組,才能設定後端為 Compute Engine 的負載平衡器。本指南說明如何建立代管執行個體群組,其中包含執行 Apache 的 Linux VM,然後設定負載平衡。代管執行個體群組會根據您指定的執行個體範本,建立每個代管執行個體。
代管執行個體群組提供的 VM 會執行外部 HTTP(S) 負載平衡器的後端伺服器。在方便示範,後端會提供自己的主機名稱。
建立代管執行個體群組前,請先建立執行個體範本。
控制台
如要同時支援 IPv4 和 IPv6 流量,請按照下列步驟操作:
前往 Google Cloud 控制台的「Instance templates」(執行個體範本) 頁面。
按一下「Create instance template」(建立執行個體範本)。
在「Name」(名稱) 中輸入
lb-backend-template。在「Region」(區域) 清單中選取區域。
確認開機磁碟設為 Debian 映像檔,例如「Debian GNU/Linux 10 (buster)」。這些操作說明中的指令僅適用於 Debian,例如
apt-get。展開「進階選項」。
展開「Networking」(網路),設定下列欄位:
- 在「Network tags」(網路標記),輸入
allow-health-check、allow-health-check-ipv6。 - 在「Network interfaces」(網路介面) 部分,按一下「Edit」(編輯)。設定下列欄位:
- Network (網路):
NETWORK - Subnet (子網路):
SUBNET - IP stack type (IP 堆疊類型):IPv4 和 IPv6 (雙重堆疊)
- Network (網路):
- 然後按一下 [完成]。
- 在「Network tags」(網路標記),輸入
展開「Management」(管理)。在「Startup script」(開機指令碼) 欄位,輸入下列指令碼:
#! /bin/bash apt-get update apt-get install apache2 -y a2ensite default-ssl a2enmod ssl vm_hostname="$(curl -H "Metadata-Flavor:Google" \ http://metadata.google.internal/computeMetadata/v1/instance/name)" echo "Page served from: $vm_hostname" | \ tee /var/www/html/index.html systemctl restart apache2
點選「建立」。
gcloud
如要同時支援 IPv4 和 IPv6 流量,請執行下列指令:
gcloud compute instance-templates create TEMPLATE_NAME \
--region=REGION \
--network=NETWORK \
--subnet=SUBNET \
--stack-type=IPv4_IPv6 \
--tags=allow-health-check,allow-health-check-ipv6 \
--image-family=debian-10 \
--image-project=debian-cloud \
--metadata=startup-script='#! /bin/bash
apt-get update
apt-get install apache2 -y
a2ensite default-ssl
a2enmod ssl
vm_hostname="$(curl -H "Metadata-Flavor:Google" \
http://metadata.google.internal/computeMetadata/v1/instance/name)"
echo "Page served from: $vm_hostname" | \
tee /var/www/html/index.html
systemctl restart apache2'
Terraform
如要建立執行個體範本,請使用 google_compute_instance_template 資源。
建立代管執行個體群組,然後選取執行個體範本。
控制台
前往 Google Cloud 控制台的「Instance groups」(執行個體群組) 頁面。
按一下「Create instance group」(建立執行個體群組)。
在左側選擇「New managed instance group (stateless)」(新增代管執行個體群組 (無狀態))。
在「Name」(名稱) 中輸入
lb-backend-example。選取「Location」(位置) 下方的「Single zone」(單一可用區)。
在「Region」(區域),選取偏好的區域。
在「Zone」(可用區),選取可用區。
在「Instance template」(執行個體範本) 下方,選取執行個體範本
lb-backend-template。在「Autoscaling mode」(自動調度資源模式),選取「On: add and remove instances to the group」(開啟:在群組中新增和移除執行個體)。
將「Minimum number of instances」(執行個體數量下限) 設為
2,並將「Maximum number of instances」(執行個體數量上限) 設為2以上。按一下「Create」(建立),建立新的執行個體群組。
gcloud
依據範本建立代管執行個體群組。
gcloud compute instance-groups managed create lb-backend-example \ --template=TEMPLATE_NAME --size=2 --zone=ZONE_A
Terraform
如要建立代管執行個體群組,請使用 google_compute_instance_group_manager 資源。
如要瞭解如何套用或移除 Terraform 設定,請參閱「基本 Terraform 指令」。
將具名通訊埠新增至執行個體群組
為執行個體群組定義一個 HTTP 服務,並將通訊埠名稱對應至相關通訊埠。負載平衡服務會將流量轉送至該具名通訊埠。詳情請參閱「具名通訊埠」。
控制台
前往 Google Cloud 控制台的「Instance groups」(執行個體群組) 頁面。
按一下「lb-backend-example」。
在執行個體群組的「Overview」(總覽) 頁面,按一下「Edit」(編輯)。
在「Port mapping」(通訊埠對應) 部分,按一下「Add port」(新增通訊埠)。
- 在通訊埠名稱,輸入
http。在通訊埠編號,輸入80。
- 在通訊埠名稱,輸入
按一下「Save」(儲存)。
gcloud
使用 gcloud compute instance-groups
set-named-ports 指令。
gcloud compute instance-groups set-named-ports lb-backend-example \
--named-ports http:80 \
--zone ZONE_A
Terraform
named_port 屬性會納入代管執行個體群組範例。
設定防火牆規則
在本範例中,您會建立 fw-allow-health-check 防火牆規則。這是輸入規則,允許來自 Google Cloud 健康狀態檢查系統 (130.211.0.0/22 和 35.191.0.0/16) 的流量。本範例使用目標標記 allow-health-check 識別 VM。
控制台
前往 Google Cloud 控制台的「Firewall policies」(防火牆政策) 頁面。
按一下「Create firewall rule」(建立防火牆規則),建立防火牆規則。
在「Name」(名稱) 中輸入
fw-allow-health-check。選取「Network」(網路)。
在「Targets」(目標) 下方,選取「Specified target tags」(指定的目標標記)。
在「Target tags」(目標標記) 欄位填入
allow-health-check。將「Source filter」(來源篩選器) 設為「IPv4 ranges」(IPv4 範圍)。
將「Source IPv4 ranges」(來源 IPv4 範圍) 設為
130.211.0.0/22和35.191.0.0/16。在「Protocols and ports」(通訊協定和通訊埠) 下方,選取「Specified protocols and ports」(指定的通訊協定和通訊埠)。
勾選「TCP」核取方塊,輸入
80做為通訊埠編號。按一下「Create」(建立)。
gcloud
gcloud compute firewall-rules create fw-allow-health-check \
--network=NETWORK \
--action=allow \
--direction=ingress \
--source-ranges=130.211.0.0/22,35.191.0.0/16 \
--target-tags=allow-health-check \
--rules=tcp:80
Terraform
如要建立防火牆規則,請使用 google_compute_firewall 資源。
如要瞭解如何套用或移除 Terraform 設定,請參閱「基本 Terraform 指令」。
建立 IPv6 健康狀態檢查防火牆規則
請確認您有適用於要進行負載平衡的執行個體的輸入規則,允許來自 Google Cloud 健康狀態檢查系統 (2600:2d00:1:b029::/64) 的流量。本範例使用目標標記 allow-health-check-ipv6 識別適用規則的 VM 執行個體。
如果沒有這項防火牆規則,默示拒絕輸入規則會封鎖傳入至後端執行個體的 IPv6 流量。
控制台
前往 Google Cloud 控制台的「Firewall policies」(防火牆政策) 頁面。
如要允許 IPv6 子網路流量,請再次按一下「建立防火牆規則」,然後輸入下列資訊:
- Name (名稱):
fw-allow-lb-access-ipv6 - Network (網路):
NETWORK - Priority (優先順序):
1000 - 「Direction of traffic」(流量方向):輸入
- 目標:指定的目標標記
- 在「Target tags」(目標標記) 欄位中輸入
allow-health-check-ipv6 - 來源篩選器:IPv6 範圍
- 來源 IPv6 範圍:
2600:2d00:1:b029::/64、2600:2d00:1:1::/64 - 「Protocols and ports」(通訊協定和通訊埠):全部允許
- Name (名稱):
點選「建立」。
gcloud
如要允許與子網路通訊,請建立 fw-allow-lb-access-ipv6 防火牆規則:
gcloud compute firewall-rules create fw-allow-lb-access-ipv6 \ --network=NETWORK \ --action=allow \ --direction=ingress \ --target-tags=allow-health-check-ipv6 \ --source-ranges=2600:2d00:1:b029::/64,2600:2d00:1:1::/64 \ --rules=all
保留外部 IP 位址
現在執行個體已開始執行,請設定全域靜態外部 IP 位址,客戶即可透過該位址連線至您的負載平衡器。
控制台
前往 Google Cloud 控制台的「External IP addresses」(外部 IP 位址) 頁面。
如要預留 IPv4 位址,請按一下「Reserve external static IP address」(預留外部靜態 IP 位址)。
在「Name」(名稱) 中輸入
lb-ipv4-1。將「Network Service Tier」(網路服務級別) 設為「Premium」。
將「IP version」(IP 版本) 設為「IPv4」。
將「Type」(類型) 設為「Global」(通用)。
按一下「Reserve」(預留)。
gcloud
gcloud compute addresses create lb-ipv4-1 \
--ip-version=IPV4 \
--network-tier=PREMIUM \
--global
請記下預留的 IPv4 位址:
gcloud compute addresses describe lb-ipv4-1 \
--format="get(address)" \
--global
Terraform
如要預留 IP 位址,請使用 google_compute_global_address 資源。
如要瞭解如何套用或移除 Terraform 設定,請參閱「基本 Terraform 指令」。
設定負載平衡器
在本範例中,您在用戶端與負載平衡器間使用的是 HTTPS (前端),因此您需要一或多個 SSL 憑證資源才能設定 Proxy。建議使用 Google 代管的憑證。
即使前端使用 HTTPS,後端仍可使用 HTTP。在 Google Front End (GFE) 和您 Google Cloud 虛擬私有雲網路內的後端之間的流量,Google 會自動加密。
控制台
選取負載平衡器類型
前往 Google Cloud 控制台的「Load balancing」(負載平衡) 頁面。
- 按一下「Create load balancer」(建立負載平衡器)。
- 將「Type of load balancer」(負載平衡器類型) 設為「Application Load Balancer (HTTP/HTTPS)」(應用程式負載平衡器 (HTTP/HTTPS)),然後按一下「Next」(下一步)。
- 將「Public facing or internal」(公開或內部) 設為「Public facing (external)」(公開 (外部)),然後按一下「Next」(下一步)。
- 將「Global or single region deployment」(全域或單一區域部署) 設為「Best for global workloads」(最適合全域工作負載),然後按一下「Next」(下一步)。
- 在「Load balancer generation」(負載平衡器代別) 部分,選取「Global external Application Load Balancer」(全域外部應用程式負載平衡器),然後點選「Next」(下一步)。
- 按一下 [設定]。
基本設定
在負載平衡器的「Name」(名稱) 中輸入 web-map-https 或 web-map-http 之類的名稱。
前端設定
- 按一下「Frontend configuration」(前端設定)。
- 將「Protocol」(通訊協定) 設為「HTTPS」。
- 為 IPv4 流量選取「
IPv4」。將「IP address」(IP 位址) 設為您先前建立的lb-ipv4-1。 - 將「Port」(通訊埠) 設為「443」。
- 按一下「Certificate」(憑證),然後選取主要 SSL 憑證。
- 選用:建立 SSL 政策:
- 在「SSL policy」(SSL 政策) 清單中,選取「Create a policy」(建立政策)。
- 將 SSL 政策名稱設為
my-ssl-policy。 - 將「Minimum TLS Version」(最低 TLS 版本) 設為「TLS 1.0」。
- 將「Profile」(設定檔) 設為「Modern」(新型)。畫面上會顯示「Enabled features」(已啟用的功能) 和「Disabled features」(已停用的功能)。
- 按一下「Save」(儲存)。
-
選用:選取「Enable HTTP to HTTPS Redirect」(啟用從 HTTP 重新導向至 HTTPS 的功能) 核取方塊,啟用重新導向功能。
勾選此核取方塊後,系統會額外建立部分 HTTP 負載平衡器,使用的 IP 位址與 HTTPS 負載平衡器相同,且會將傳入的 HTTP 要求重新導向至負載平衡器的 HTTPS 前端。
只有在選取 HTTPS 通訊協定並使用預留的 IP 位址時,才能勾選這個核取方塊。
- 按一下「Done」(完成)。
後端設定
- 按一下「Backend configuration」(後端設定)。
- 在「Backend services & backend buckets」(後端服務和後端 bucket) 下方,選取「Create a backend service」(建立後端服務)。
- 為後端服務新增名稱,例如
web-backend-service。 - 前往「Security」(安全性) 部分,然後選取「Enable IAP to secure access to your applications」(啟用 IAP 來安全地存取應用程式)。
Cloud CDN 和 IAP 不相容。如果您已啟用 Cloud CDN,並選取啟用 IAP,Cloud CDN 會自動停用。
- 在「IP address selection policy」(IP 位址選擇政策) 清單中,選取「Prefer IPv6」(偏好使用 IPv6)。
-
選用:設定預設後端安全性政策。預設安全性政策會根據使用者設定的門檻節流。如要進一步瞭解預設安全性政策,請參閱「頻率限制總覽」。
- 如要停用 Cloud Armor 預設安全性政策,請在「Cloud Armor backend security policy」(Cloud Armor 後端安全性政策) 清單中,選取
None。 - 如要設定 Cloud Armor 預設安全性政策,請在「Cloud Armor backend security policy」(Cloud Armor 後端安全性政策) 清單中,選取「Default security policy」(預設安全性政策)。
- 在「Policy name」(政策名稱) 欄位,接受系統自動產生的名稱,或輸入安全性政策的名稱。
- 在「Request count」(要求數量) 欄位,接受預設要求數量,或輸入介於
1和10,000之間的整數。 - 在「Interval」(間隔) 欄位,選取所需間隔。
- 在「Enforce on key」(強制啟用金鑰) 欄位,選擇下列其中一個值:「All」(全部)、「IP address」(IP 位址) 或「X-Forwarded-For IP address」(X-Forwarded-For IP 位址)。如要進一步瞭解這些選項,請參閱「識別用戶端以設定頻率限制」。
- 如要停用 Cloud Armor 預設安全性政策,請在「Cloud Armor backend security policy」(Cloud Armor 後端安全性政策) 清單中,選取
- 保留其他預設設定。
- 點選「建立」。
轉送規則
保留「Routing rules」(轉送規則) 的預設設定。
檢查並完成
- 按一下「Review and finalize」(檢查並完成)。
- 查看負載平衡器設定。
- 選用:按一下「Equivalent code」(對等程式碼),即可查看用於建立負載平衡器的 REST API 要求。
- 按一下「Create」(建立)。
等待負載平衡器建立完成。
如已建立 HTTPS 負載平衡器,並勾選「Enable HTTP to HTTPS Redirect」(啟用從 HTTP 重新導向至 HTTPS 的功能) 核取方塊,系統也會建立 HTTP 負載平衡器,並加上「-redirect」後置字元。
- 按一下負載平衡器名稱。
- 在「Load balancer details」(負載平衡器詳細資料) 畫面,記下負載平衡器的「IP:Port」(IP:通訊埠)。
gcloud
- 建立健康狀態檢查。
gcloud compute health-checks create http http-basic-check \ --port 80 - 建立後端服務。
gcloud beta compute backend-services create web-backend-service \ --load-balancing-scheme=EXTERNAL_MANAGED \ --protocol=HTTP \ --port-name=http \ --ip-address-selection-policy=PREFER_IPV6 \ --health-checks=http-basic-check \ --global - 將執行個體群組新增至後端服務,做為後端。
gcloud beta compute backend-services add-backend web-backend-service \ --instance-group=lb-backend-example \ --instance-group-zone=ZONE_A \ --global
- 如果是 HTTP,請建立網址對應,將傳入要求轉送至預設後端服務。
gcloud beta compute url-maps create web-map-http \ --default-service web-backend-service
- 如果是 HTTPS,請建立網址對應,將傳入要求轉送至預設後端服務。
gcloud beta compute url-maps create web-map-https \ --default-service web-backend-service
設定 HTTPS 前端
如果是 HTTP 負載平衡器,請略過本節。
- 若採用 HTTPS,請按照下節說明,建立全域 SSL 憑證資源 (如未建立):
若採用 HTTPS,請建立目標 HTTPS Proxy,將要求轉送至網址對應。Proxy 是負載平衡器的一部分,為 HTTPS 負載平衡器保留 SSL 憑證,因此您也可以在此步驟載入憑證。
gcloud beta compute target-https-proxies create http-lb-proxy \ --http-keep-alive-timeout-sec=HTTP_KEEP_ALIVE_TIMEOUT_SEC \ --url-map=web-map-https \ --ssl-certificates=www-ssl-cert
將
HTTP_KEEP_ALIVE_TIMEOUT_SEC替換為用戶端 HTTP 保持運作逾時值,範圍為 5 到 1200 秒。預設值為 610 秒。這是選填欄位。- 若採用 HTTPS,請建立全域轉送規則,將傳入要求轉送至 Proxy。
gcloud beta compute forwarding-rules create https-content-rule \ --load-balancing-scheme=EXTERNAL_MANAGED \ --network-tier=PREMIUM \ --address=lb-ipv4-1 \ --global \ --target-https-proxy=https-lb-proxy \ --ports=443
- 選用:若採用 HTTPS,請建立全域 SSL 政策,並附加至 HTTPS Proxy。
建立全域 SSL 政策: 將 SSL 政策附加至全域目標 HTTPS Proxy:gcloud compute ssl-policies create my-ssl-policy \ --profile MODERN \ --min-tls-version 1.0
gcloud compute target-https-proxies update https-lb-proxy \ --ssl-policy my-ssl-policy
設定 HTTP 前端
如果是 HTTPS 負載平衡器,請略過本節。
- 若採用 HTTP,請建立目標 HTTP Proxy,將要求轉送至您的網址對應。
gcloud beta compute target-http-proxies create http-lb-proxy \ --http-keep-alive-timeout-sec=HTTP_KEEP_ALIVE_TIMEOUT_SEC \ --url-map=web-map-http
將
HTTP_KEEP_ALIVE_TIMEOUT_SEC替換為用戶端 HTTP 保持運作逾時值,範圍為 5 到 1200 秒。預設值為 610 秒。這是選填欄位。 - 若採用 HTTP,請建立全域轉送規則,將傳入要求轉送至 Proxy。
gcloud beta compute forwarding-rules create http-content-rule \ --load-balancing-scheme=EXTERNAL_MANAGED \ --address=lb-ipv4-1 \ --global \ --target-http-proxy=http-lb-proxy \ --ports=80
Terraform
-
如要建立健康狀態檢查,請使用
google_compute_health_check資源。 -
如要建立後端服務,請使用
google_compute_backend_service資源。 -
如要建立網址對應,請使用
google_compute_url_map資源。 -
如要建立目標 HTTP Proxy,請使用
google_compute_target_http_proxy資源。 -
如要建立轉送規則,請使用
google_compute_global_forwarding_rule資源。
如要瞭解如何套用或移除 Terraform 設定,請參閱「基本 Terraform 指令」。
將網域連結至負載平衡器
負載平衡器建立完成後,請記下與其相關聯的 IP 位址,例如 30.90.80.100。如要將網域指向負載平衡器,請透過網域註冊服務建立 A 記錄。如果在 SSL 憑證新增了多個網域,須新增各個網域的 A 記錄,並全部指向負載平衡器的 IP 位址。舉例來說,如要建立 www.example.com 和 example.com 的 A 記錄,請使用以下方法:
NAME TYPE DATA www A 30.90.80.100 @ A 30.90.80.100
如果使用 Cloud DNS 做為 DNS 供應商,請參閱「新增、修改及刪除記錄」。
測試流量能否傳送至執行個體
負載平衡服務已開始執行,接著可以將流量傳送至轉送規則,觀察流量是否分散到不同的執行個體。
控制台
前往 Google Cloud 控制台的「Load balancing」(負載平衡) 頁面。
- 按一下剛剛建立的負載平衡器。
在「Backend」(後端) 部分,確認 VM 顯示為健康狀態良好。「Healthy」(健康狀態良好) 欄應已填妥,顯示兩個 VM 健康狀態均良好 (
2/2)。如看到其他資訊,請先嘗試重新載入頁面。 Google Cloud 控制台可能需要一些時間,才能顯示 VM 健康狀態良好。如果幾分鐘後,後端仍未顯示為健康狀態良好,請檢查指派到後端 VM 的防火牆設定與網路標記。- 如果使用 HTTPS 和 Google 代管的憑證,請確認憑證資源的狀態為「ACTIVE」(有效)。詳情請參閱「Google 代管的 SSL 憑證資源狀態」。
- Google Cloud 控制台顯示後端執行個體健康狀態良好後,您可以前往
https://IP_ADDRESS(或http://IP_ADDRESS),使用網路瀏覽器測試負載平衡器。請將IP_ADDRESS替換為負載平衡器的 IP 位址。 - 若您使用自行簽署的憑證測試 HTTPS,您的瀏覽器會出現警告。您必須明確指示瀏覽器接受自行簽署的憑證。
- 瀏覽器顯示的頁面中,應會列出提供該頁面的執行個體名稱及所屬可用區 (例如
Page served from: lb-backend-example-xxxx)。如果瀏覽器無法顯示這個頁面,請查看本指南的設定。
gcloud
gcloud compute addresses describe lb-ipv4-1 \ --format="get(address)" \ --global
幾分鐘後,您可以執行下列 curl 指令,測試設定。
curl http://IP_ADDRESS
-或-
curl https://HOSTNAME
額外設定
本節會延伸說明設定範例,並提供替代和其他設定選項。所有工作都是選擇性的。您可以按任何順序執行這些工作。
更新用戶端 HTTP 保持運作逾時
先前步驟中建立的負載平衡器已設定用戶端 HTTP Keep-Alive 超時的預設值。如要更新用戶端 HTTP 保持連線逾時,請按照下列操作說明操作。
控制台
前往 Google Cloud 控制台的「Load balancing」(負載平衡) 頁面。
- 按一下要修改的負載平衡器名稱。
- 點選「Edit」(編輯)。
- 按一下「前端設定」。
- 展開「Advanced features」(進階功能)。在「HTTP 保持運作逾時」部分, 輸入逾時值。
- 按一下「Update」。
- 如要檢查變更,請依序按一下「檢查並完成」和「更新」。
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 \
--global
如果是 HTTPS 負載平衡器,請使用 gcloud compute target-https-proxies update 指令更新目標 HTTPS Proxy:
gcloud compute target-https-proxies update TARGET_HTTPS_PROXY_NAME \
--http-keep-alive-timeout-sec=HTTP_KEEP_ALIVE_TIMEOUT_SEC \
--global
更改下列內容:
TARGET_HTTP_PROXY_NAME:目標 HTTP Proxy 的名稱。TARGET_HTTPS_PROXY_NAME:目標 HTTPS Proxy 的名稱。HTTP_KEEP_ALIVE_TIMEOUT_SEC:HTTP 保持運作逾時值,範圍為 5 到 600 秒。
後續步驟
如需相關說明文件,請參閱:
- 為外部應用程式負載平衡器設定 HTTP 至 HTTPS 的重新導向
- 設定 HTTPS 負載平衡器
- 將應用程式負載平衡器轉換為 IPv6
- 在外部應用程式負載平衡器上啟用 IAP
- 外部應用程式負載平衡器的 Terraform 模組範例
- 清除負載平衡器設定
相關影片: