本文說明如何建立全域外部應用程式負載平衡器,並使用位於不同專案的後端服務和後端 bucket,這些專案與負載平衡器的前端和網址對應所在專案不同。這種部署模型稱為「跨專案服務參照」。
本文件使用的範例並未透過共用虛擬私有雲環境設定跨專案服務參照。如要進一步瞭解如何在 Shared VPC 環境中設定跨專案服務參照,請參閱「使用 Shared VPC 設定全域外部應用程式負載平衡器」。
事前準備
請確認設定符合下列先決條件。
所需的身分與存取權管理角色和權限
如要按照本指南操作,您必須具備下列 IAM 角色:
工作 | 必要角色 |
---|---|
建立專案 | 專案建立者角色 (roles/resourcemanager.projectCreator )
|
建立運算資源 | Compute 網路管理員角色 (roles/compute.networkAdmin )
|
建立 Cloud Storage 值區 | Storage 物件管理員角色 (roles/storage.objectAdmin )
|
使用其他專案的資源 (在本範例中,專案 A 會參照專案 B 中的後端服務和後端 bucket。) |
在這個範例中,專案 B 的管理員必須將 Compute 負載平衡器服務使用者角色 ( 如要進一步瞭解如何指派這個角色,請參閱「授予 Compute 負載平衡器管理員權限,以使用後端服務」。 |
建立 Trusted Cloud by S3NS 專案
以本文中的範例為例,請按照操作說明建立兩個 Trusted Cloud by S3NS 專案。
控制台
如要建立新專案,請執行下列步驟:
-
前往控制台的「Manage resources」(管理資源) 頁面。 Trusted Cloud
其餘步驟會顯示在 Trusted Cloud 控制台。
- 在頁面頂端的「Select organization」(選取機構) 下拉式清單中,選取要建立專案的機構資源。如果您是免費試用的使用者,請略過這個步驟,因為系統不會顯示這個清單。
- 按一下「Create Project」(建立專案)。
- 在顯示的「New Project」(新增專案) 視窗中,輸入專案名稱並選取適當的帳單帳戶。專案名稱只能由英文字母、數字、單引號、連字號、空格或驚嘆號組成,而且長度必須介於 4 至 30 個字元之間。
- 在「Location」(位置) 方塊中輸入上層機構或資料夾,該資源將成為新專案的階層父項。如果系統顯示「No organization」(無機構) 這個選項,只要選取該選項即可建立新專案,做為其資源階層的頂層。
- 輸入新專案的詳細資料後,按一下「Create」(建立)。
gcloud
-
In the Trusted Cloud console, activate Cloud Shell.
At the bottom of the Trusted Cloud console, a Cloud Shell session starts and displays a command-line prompt. Cloud Shell is a shell environment with the Google Cloud CLI already installed and with values already set for your current project. It can take a few seconds for the session to initialize.
如要建立新專案,請使用
gcloud projects create
指令:gcloud projects create PROJECT_ID
其中 PROJECT_ID 是您要建立的專案 ID。 專案 ID 的開頭必須是小寫英文字母且僅包含 ASCII 字母、數字或連字號,並且必須介於 6 至 30 個字元。
設定總覽
如下圖所示,全域外部應用程式負載平衡器的前端和網址對應表是在與負載平衡器後端服務和後端 bucket 不同的專案中建立。這類跨專案部署作業不會使用共用虛擬私有雲環境。
在這個設定中,網址對應會將靜態內容 (/images/*
) 的要求轉送至後端值區,而所有其他要求則會轉送至預設後端服務。
下表概略說明在專案 A 和專案 B 中建立的資源。負載平衡器的前端和網址對應關係是在專案 A 中建立,後端元件則是在專案 B 中建立。
在專案 A 中建立的資源 | 在專案 B 中建立的資源 |
---|---|
|
|
在接下來的章節中,我們將設定上表列出的不同資源,首先是為專案 B 中的負載平衡器後端 VM 設定虛擬私有雲網路和子網路。
在專案 B 中,為負載平衡器的後端 VM 設定網路和子網路
在本範例中,後端 VM 是在下列網路和子網路中建立:
電視網:網路為名為
lb-network
的自訂模式虛擬私有雲網路。負載平衡器後端 VM 的子網路:
us-west1
地區中名為lb-backend-subnet
的子網路使用10.1.2.0/24
做為其主要 IP 範圍。子網路的主要和次要 IPv4 位址範圍是區域性內部 IPv4 位址。詳情請參閱「有效 IPv4 範圍」。
主控台
在 Trusted Cloud 控制台中,前往「VPC networks」(虛擬私有雲網路) 頁面。
按一下「建立虛擬私有雲網路」。
在「Name」(名稱) 中輸入
lb-network
。在「Subnets」(子網路) 區段,將「Subnet creation mode」(子網路建立模式) 設為「Custom」(自訂)。
在「New subnet」(新的子網路) 區段中,輸入以下資訊:
- Name (名稱):
lb-backend-subnet
- 選取「區域」:
us-west1
- IP address range (IP 位址範圍):
10.1.2.0/24
- Name (名稱):
按一下 [完成]。
點選「建立」。
gcloud
使用
gcloud compute networks create
指令建立名為lb-network
的自訂虛擬私有雲網路。gcloud compute networks create lb-network \ --subnet-mode=custom \ --project=PROJECT_B_ID
使用
gcloud compute networks subnets create
指令,在us-west1
地區的lb-network
虛擬私有雲網路中建立子網路。gcloud compute networks subnets create lb-backend-subnet \ --network=lb-network \ --range=10.1.2.0/24 \ --region=us-west1 \ --project=PROJECT_B_ID
在專案 B 中設定後端服務
如要設定後端服務,請按照下列步驟操作:
- 建立執行個體範本。
- 建立執行個體群組。
- 建立健康狀態檢查。
- 建立防火牆規則。
- 建立後端服務。
建立執行個體範本
建立代管執行個體群組之前,您必須先建立執行個體範本。執行個體範本是一種資源,可用來建立虛擬機器 (VM) 執行個體。從用戶端到執行個體群組中 VM 的流量會經過負載平衡。代管執行個體群組提供的 VM 會執行外部應用程式負載平衡器的後端伺服器。在本範例中,後端會提供自己的主機名稱。
主控台
在 Trusted Cloud 控制台中,前往 Compute Engine 的「Instance templates」(執行個體範本) 頁面。
點選「建立執行個體範本」。
在「Name」(名稱) 中輸入
backend-template
。在「Boot disk」(開機磁碟) 專區中,確認開機磁碟已設為 Debian 映像檔,例如 Debian GNU/Linux 12 (bookworm)。如有需要,請按一下「Change」(變更),以變更映像檔。
展開「Advanced options」(進階選項) 區段。
展開「Networking」(網路),然後設定下列欄位:
- 在「網路標記」部分輸入
load-balanced-backend
。 - 在「網路介面」部分,設定下列欄位:
- Network (網路):
lb-network
- Subnet (子網路):
lb-backend-subnet
- IP stack type (IP 堆疊類型):IPv4
- Network (網路):
- 然後按一下 [完成]。
- 在「網路標記」部分輸入
展開「管理」。在「Startup script」(開機指令碼) 欄位中,輸入下列指令碼:
#! /bin/bash apt-get update apt-get install apache2 -y a2ensite default-ssl a2enmod ssl # Retrieve the instance name from metadata vm_hostname="$(curl -H "Metadata-Flavor:Google" \ http://metadata.google.internal/computeMetadata/v1/instance/name)" # Create an index file echo "Page served from: $vm_hostname" | \ tee /var/www/html/index.html # Restart Apache to apply changes systemctl restart apache2' \
點選「建立」。
gcloud
建立執行個體範本。
gcloud compute instance-templates create INSTANCE_TEMPLATE_NAME \ --region=us-west1 \ --network=projects/PROJECT_B_ID/global/networks/lb-network \ --subnet=projects/PROJECT_B_ID/regions/us-west1/subnetworks/lb-backend-subnet \ --tags=load-balanced-backend \ --image-family=debian-12 \ --image-project=debian-cloud \ --metadata=startup-script='#! /bin/bash apt-get update apt-get install apache2 -y a2ensite default-ssl a2enmod ssl # Retrieve the instance name from metadata vm_hostname="$(curl -H "Metadata-Flavor:Google" \ http://metadata.google.internal/computeMetadata/v1/instance/name)" # Create an index file echo "Page served from: $vm_hostname" | \ tee /var/www/html/index.html # Restart Apache to apply changes systemctl restart apache2' \ --project=PROJECT_B_ID
建立代管執行個體群組
主控台
在 Trusted Cloud 控制台中,前往 Compute Engine 的「Instance groups」(執行個體群組) 頁面。
按一下「建立執行個體群組」。
從選項中選取「New managed instance group (stateless)」(新增代管執行個體群組 (無狀態))。
輸入
lb-backend
做為執行個體群組的名稱。在「Instance template」(執行個體範本) 清單中,選取您在上一個步驟中建立的執行個體範本
backend-template
。在「Location」(位置) 專區中,選取「Single zone」(單一可用區),並輸入下列值:
在「Region」(區域) 中選取
us-west1
。在「Zone」(可用區) 中選取
us-west1-a
。
在「Autoscaling」(自動調度資源) 區段中,輸入以下的值:
針對「Autoscaling mode」(自動調度資源模式),選取「On: add and remove instances to the group」(開啟:在群組中新增和移除執行個體)。
在「Minimum number of instances」(執行個體數量下限) 中選取
2
。在「Maximum number of instances」(執行個體數量上限) 中選取
3
。
在「Port mapping」(通訊埠對應) 專區中,按一下「Add port」(新增通訊埠),然後輸入下列值:
在「Port name」(通訊埠名稱) 輸入
http
。在「Port number」(通訊埠編號) 部分輸入
80
。
點選「建立」。
gcloud
建立代管執行個體群組,並選取您在上一個步驟中建立的執行個體範本:
gcloud compute instance-groups managed create INSTANCE_GROUP_NAME \ --zone=us-west1-a \ --size=2 \ --template=INSTANCE_TEMPLATE_NAME \ --project=PROJECT_B_ID
將具名通訊埠新增至執行個體群組:
gcloud compute instance-groups set-named-ports INSTANCE_GROUP_NAME \ --named-ports=http:80 \ --zone=us-west1-a \ --project=PROJECT_B_ID
建立健康狀態檢查
健康狀態檢查可以確認後端的可用性。建立使用 HTTP 通訊協定和在通訊埠 80 上探測的健康狀態檢查。稍後,您會將這項健康狀態檢查附加至負載平衡器參照的後端服務。
主控台
在 Trusted Cloud 控制台中,前往 Compute Engine 的「Health checks」(健康狀態檢查) 頁面。
將健康狀態檢查的名稱設為
lb-health-check
。將「Protocol」(通訊協定) 設為「HTTP」HTTP。
點選「建立」。
gcloud
建立 HTTP 健康狀態檢查。
gcloud compute health-checks create http lb-health-check \ --use-serving-port \ --project=PROJECT_B_ID
建立防火牆規則
針對健康狀態檢查探測器,您必須在網路層級建立允許輸入的防火牆規則,在本範例中為 lb-network
。這項防火牆規則可讓健康狀態檢查探測器連線至後端執行個體。這個範例使用下列防火牆規則:
fw-allow-health-check
. 輸入規則,適用於要進行負載平衡的執行個體,可允許來自 Trusted Cloud健康狀態檢查系統 (位於130.211.0.0/22
和35.191.0.0/16
) 的所有 TCP 流量。這個範例會使用目標標記load-balanced-backend
來辨識應套用這項規則的執行個體。
主控台
在 Trusted Cloud 控制台中,前往「Firewall policies」(防火牆政策) 頁面。
按一下「Create firewall rule」(建立防火牆規則),建立允許連入用戶端 VM 的 SSH 連線規則:
- Name (名稱):
fw-allow-health-check
- Network (網路):
lb-network
- Direction of traffic (流量方向):「Ingress」(輸入)
- 「Action on match」(相符時執行的動作):允許
- 目標:指定的目標標記
- 「Target tags」(目標標記):
load-balanced-backend
- 來源篩選器:IPv4 範圍
- Source IPv4 ranges (來源 IPv4 範圍):
130.211.0.0/22
和35.191.0.0/16
- 通訊協定和通訊埠:
- 選擇「指定的通訊協定與通訊埠」。
- 勾選「TCP」TCP核取方塊,然後輸入
80
做為通訊埠編號。 最佳做法是將這項規則限制為僅適用於與健康狀態檢查所用通訊協定和通訊埠相符的項目。如果您將通訊協定和通訊埠指定為 tcp:80, Trusted Cloud by S3NS 可以使用 HTTP 透過通訊埠 80 與您的 VM 聯絡,但無法使用 HTTPS 透過通訊埠 443 聯絡這些 VM。
- Name (名稱):
點選「建立」。
gcloud
建立
fw-allow-health-check
防火牆規則,允許Trusted Cloud 健康狀態檢查。這個範例允許來自健康狀態檢查探測器的所有 TCP 流量。不過,您可以設定較窄的連接埠組合,以符合需求。gcloud compute firewall-rules create FIREWALL_RULE_NAME \ --network=lb-network \ --action=allow \ --direction=ingress \ --source-ranges=130.211.0.0/22,35.191.0.0/16 \ --target-tags=load-balanced-backend \ --rules=tcp \ --project=PROJECT_B_ID
建立後端服務
建立全域後端服務,在後端之間分配流量。在這個步驟中,您需要將建立的健康狀態檢查指派給後端服務,並將執行個體群組新增至後端服務,做為後端使用。
主控台
前往 Trusted Cloud 控制台的「Load balancing」(負載平衡)頁面。
前往「後端」部分。
按一下「建立後端服務」。
在「全域後端服務」部分,點選旁邊的「建立」按鈕。
輸入
cross-ref-backend-service
做為後端服務的名稱。在「Backend type」(後端類型) 部分,選取「Instance group」(執行個體群組)。
將「Protocol」(通訊協定) 設為「HTTP」。
在「Named port」(已命名通訊埠) 欄位輸入
http
,也就是您在建立代管執行個體群組時輸入的通訊埠名稱。如要將後端新增至後端服務,請按照下列指示操作:
在「Backends」(後端) 專區中,將「Instance group」(執行個體群組) 設為「
lb-backend
」,也就是您在稍早步驟中建立的代管執行個體群組。在「Port numbers」(通訊埠編號) 的部分,輸入
80
。如要新增後端,請按一下「完成」。
如要新增健康狀態檢查,請在「健康狀態檢查」清單中選取
lb-health-check
,也就是您先前建立的健康狀態檢查。如要建立後端服務,請按一下「Create」(建立)。
gcloud
建立全域後端服務,將流量分配到各個後端:
gcloud compute backend-services create BACKEND_SERVICE_NAME \ --load-balancing-scheme=EXTERNAL_MANAGED \ --protocol=HTTP \ --port-name=http \ --health-checks=HEALTH_CHECK_NAME \ --global \ --project=PROJECT_B_ID
將執行個體群組新增至後端服務,做為後端使用:
gcloud compute backend-services add-backend BACKEND_SERVICE_NAME \ --instance-group=INSTANCE_GROUP_NAME \ --instance-group-zone=us-west1-a \ --global \ --project=PROJECT_B_ID
在專案 B 中設定後端 bucket
如要建立後端 bucket,請執行下列操作:
- 建立 Cloud Storage 值區。
- 將內容複製到 bucket。
- 將值區設為公開存取。
- 建立後端 bucket,並指向 Cloud Storage bucket。
建立 Cloud Storage 值區
主控台
- 在 Trusted Cloud 控制台,前往「Cloud Storage bucket」頁面。
按一下「建立」
。在「Name your bucket」(為值區命名) 方塊中,輸入符合命名規範的全域不重複名稱。
按一下「Choose where to store your data」(選取資料的儲存位置)。
將「Location type」(位置類型) 設為「Region」(區域)。
從區域清單中選取「us-east1」。
點選「建立」。
gcloud
使用
gcloud storage buckets create
指令,在us-east1
區域中建立值區。gcloud storage buckets create gs://BUCKET_NAME \ --default-storage-class=standard \ --location=us-east1 \ --uniform-bucket-level-access \ --project=PROJECT_B_ID
將變數 BUCKET_NAME 換成 Cloud Storage 值區名稱。
將圖像檔案複製到 Cloud Storage bucket
在 Cloud Shell 中執行下列指令,並將值區名稱變數改為您的專屬 Cloud Storage 值區名稱,將圖片檔案從公開 Cloud Storage 值區複製到您 Cloud Storage 值區的 images/
資料夾:
gcloud storage cp gs://gcp-external-http-lb-with-bucket/three-cats.jpg gs://BUCKET_NAME/images/
將 Cloud Storage bucket 設為可公開讀取
如要將 bucket 中的所有物件設為可供公開網路中的所有使用者讀取,請授予主體 allUsers
Storage 物件檢視者角色 (roles/storage.objectViewer
)。
主控台
如要向所有使用者授予 bucket 中物件的檢視權限,請為每個 bucket 重複執行下列程序:
- 在 Trusted Cloud 控制台,前往「Cloud Storage bucket」頁面。
在值區清單中,找到您要設為公開的值區名稱,然後點選這個名稱。
選取靠近頁面上方的 [Permissions] (權限) 分頁標籤。
在「權限」部分中,按一下「授予存取權」按鈕
。系統會隨即顯示「授予存取權」對話方塊。在「New principals」(新增主體) 欄位中輸入
allUsers
。在「Select a role」(請選擇角色) 欄位的篩選方塊中輸入
Storage Object Viewer
,然後從篩選結果中選取「Storage Object Viewer」(Storage 物件檢視者)。按一下 [儲存]。
按一下「Allow public access」(允許公開存取)。
gcloud
如要向所有使用者授予值區中物件的檢視權限,請執行 buckets add-iam-policy-binding
指令。
gcloud storage buckets add-iam-policy-binding gs://BUCKET_NAME --member=allUsers --role=roles/storage.objectViewer
將值區名稱變數替換為專屬的 Cloud Storage 值區名稱。
建立後端值區
後端 bucket 是您先前建立的 Cloud Storage bucket 的包裝函式。將傳入流量導向至 Cloud Storage 值區。
主控台
前往 Trusted Cloud 控制台的「Load balancing」(負載平衡)頁面。
前往「後端」部分。
按一下「建立後端 bucket」。
輸入後端 bucket 的名稱。
選取要將後端 bucket 指向的 Cloud Storage bucket。
點選「建立」。
gcloud
在專案 B 中,使用 gcloud compute backend-buckets create
指令建立後端 bucket。
gcloud compute backend-buckets create BACKEND_BUCKET_NAME \ --gcs-bucket-name=BUCKET_NAME \ --project=PROJECT_B_ID
在專案 A 中設定負載平衡器前端元件
本節說明如何在專案 A 中設定下列負載平衡器前端元件:
- IP 位址
- SSL 憑證
- 網址對應
- 目標 Proxy
- 轉送規則
保留負載平衡器的 IP 位址
預留可指派給負載平衡器轉送規則的全域靜態外部 IP 位址。
主控台
在 Trusted Cloud 控制台中,前往虛擬私有雲的「IP addresses」(IP 位址) 頁面。
按一下「保留外部靜態 IP 位址」。
在「Name」(名稱) 中輸入
cross-ref-ip-address
。將「Network Service Tier」(網路服務級別) 設為「Premium」。
將「IP version」(IP 版本) 設為「IPv4」。
將「Type」(類型) 設為「Global」(通用)。
按一下「保留」。
gcloud
建立全域靜態外部 IP 位址。
gcloud compute addresses create IP_ADDRESS_NAME \ --ip-version=IPV4 \ --network-tier=PREMIUM \ --global \ --project=PROJECT_A_ID
設定 SSL 憑證資源
在本範例中,您可以使用 HTTP 或 HTTPS 做為用戶端與負載平衡器之間的要求與回應通訊協定。如要建立 HTTPS 負載平衡器,您必須在負載平衡器的前端新增 SSL 憑證資源。
如要建立 SSL 憑證資源,請參閱下列文件:
建議使用 Google 代管的憑證。
建立憑證後,您可以將憑證附加至 HTTPS 目標 Proxy。
設定全域外部應用程式負載平衡器的元件
主控台
選取負載平衡器類型
前往 Trusted Cloud 控制台的「Load balancing」(負載平衡)頁面。
- 點選「建立負載平衡器」。
- 在「Type of load balancer」(負載平衡器類型) 部分,選取「Application Load Balancer (HTTP/HTTPS)」(應用程式負載平衡器 (HTTP/HTTPS)),然後點選「Next」(下一步)。
- 在「公開或內部」部分,選取「公開 (外部)」,然後點選「下一步」。
- 在「Global or single region deployment」(全域或單一區域部署) 部分,選取「Best for global workloads」(最適合全域工作負載),然後點選「Next」(下一步)。
- 在「Load balancer generation」(負載平衡器代別) 部分,選取「Global external Application Load Balancer」(全域外部應用程式負載平衡器),然後點選「Next」(下一步)。
- 按一下 [設定]。
基本設定
- 輸入負載平衡器的名稱。
- 請保持開啟這個頁面,以便繼續操作。
設定前端
HTTP:
- 按一下「前端設定」。
- 輸入轉送規則名稱。
- 將「Protocol」(通訊協定) 設為
HTTP
。 - 選取您在「保留負載平衡器的 IP 位址」中建立的 IP 位址。
- 將「Port」(通訊埠) 設為
80
。 - 按一下 [完成]。
HTTPS:
如果您在用戶端與負載平衡器間使用的是 HTTPS,則需要有一個或多個 SSL 憑證資源才能設定 Proxy。如要瞭解如何建立 SSL 憑證資源,請參閱「SSL 憑證」。
- 按一下「前端設定」。
- 輸入轉送規則名稱。
- 在「Protocol」(通訊協定) 欄位中,選取「
HTTPS (includes HTTP/2)
」。 - 選取您在「保留負載平衡器的 IP 位址」中建立的 IP 位址。
- 確認「Port」(通訊埠) 已設為
443
,以允許 HTTPS 流量。 - 按一下「憑證」清單。
- 選取您先前建立的 SSL 憑證名稱。
- 按一下 [完成]。
設定後端
- 按一下「後端設定」。
- 按一下「跨專案後端服務」。
- 在「Project ID」部分,輸入專案 B 的專案 ID。
- 在「選取後端服務」清單中,選取要使用的專案 B 後端服務。
- 按一下 [確定]。
設定轉送規則
按一下「轉送規則」。
在模式中,選取「進階型主機與路徑規則」。
選取「新增主機與路徑規則」。
在「Hosts」欄位中輸入
*
,比對所有主機名稱。在「Patch matcher」(修補程式比對器) 專區中,輸入下列 YAML 設定。
defaultService: projects/PROJECT_B_ID/global/backendServices/BACKEND_SERVICE_NAME name: PATH_MATCHER_NAME pathRules: - paths: - /images/* service: projects/PROJECT_B_ID/global/backendBuckets/BACKEND_BUCKET_NAME
在這個範例中,路徑比對器是由路徑規則和預設服務組成。路徑規則會將所有傳送至
/images/*
的要求轉送至後端 bucket。所有其他要求都會轉送至預設後端服務。按一下 [完成]。
如要瞭解流量管理,請參閱「流量管理總覽」。
檢查並完成設定
檢查您在上述步驟中設定的負載平衡器元件。你會發現「後端」部分同時參照後端服務和後端值區。
點選「建立」。
gcloud
如要使用 gcloud CLI 建立上述負載平衡元件,請按照下列步驟操作:
使用
gcloud compute url-maps create
指令建立網址對應。gcloud compute url-maps create URL_MAP_NAME \ --default-service=projects/PROJECT_B_ID/global/backendServices/BACKEND_SERVICE_NAME \ --global \ --project=PROJECT_A_ID
為網址對應新增路徑比對器。在本範例中,路徑比對器包含路徑規則和預設服務。路徑規則會將所有要求轉送至後端值區。
/images/*
所有其他要求都會轉送至預設後端服務。gcloud compute url-maps add-path-matcher URL_MAP_NAME \ --path-matcher-name=PATH_MATCHER_NAME \ --default-service=projects/PROJECT_B_ID/global/backendServices/BACKEND_SERVICE_NAME \ --backend-bucket-path-rules=/images/*=projects/PROJECT_B_ID/global/backendBuckets/BACKEND_BUCKET_NAME
使用
gcloud compute target-http-proxies create
指令建立目標 Proxy。針對 HTTP 流量,建立目標 HTTP Proxy,將要求轉送至網址對應:
gcloud compute target-http-proxies create TARGET_HTTP_PROXY_NAME \ --url-map=URL_MAP_NAME \ --global \ --project=PROJECT_A_ID
如果是 HTTPS 流量,請建立目標 HTTPS Proxy,將要求轉送至網址對應。Proxy 是負載平衡器的一部分,用於保存 HTTPS 負載平衡器的 SSL 憑證。建立憑證後,即可將憑證附加至 HTTPS 目標 Proxy。
gcloud compute target-https-proxies create TARGET_HTTPS_PROXY_NAME \ --url-map=URL_MAP_NAME \ --ssl-certificates=CERTIFICATE_NAME \ --global \ --project=PROJECT_A_ID
將
CERTIFICATE_NAME
替換為 SSL 憑證的名稱。使用
gcloud compute forwarding-rules create
指令建立通用轉送規則。針對 HTTP 流量,建立全域轉送規則,將傳入要求轉送至 HTTP 目標 Proxy:
gcloud compute forwarding-rules create HTTP_FORWARDING_RULE_NAME \ --load-balancing-scheme=EXTERNAL_MANAGED \ --address=IP_ADDRESS_NAME \ --global \ --target-http-proxy=TARGET_HTTP_PROXY_NAME \ --ports=80 \ --project=PROJECT_A_ID
針對 HTTPS 流量,請建立全域轉送規則,將傳入要求轉送至 HTTPS 目標 Proxy:
gcloud compute forwarding-rules create HTTPS_FORWARDING_RULE_NAME \ --load-balancing-scheme=EXTERNAL_MANAGED \ --address=IP_ADDRESS_NAME \ --global \ --target-https-proxy=TARGET_HTTPS_PROXY_NAME \ --ports=443 \ --project=PROJECT_A_ID
測試負載平衡器
負載平衡器設定完成後,您就可以傳送要求。在本範例中,要求會傳送至負載平衡器的 HTTP 轉送規則。
取得負載平衡器 HTTP 轉送規則的 IP 位址。
gcloud compute forwarding-rules describe HTTP_FORWARDING_RULE_NAME \ --global
如果將瀏覽器指向 http://IP_ADDRESS,要求會轉送至後端服務,後者會傳回包含後端執行個體最少資訊的頁面。
不過,如果將瀏覽器指向 http://IP_ADDRESS/images/three-cats.jpg,系統會將對 /images/*
的要求轉送至後端 bucket,並傳回圖像檔案。