使用目标代理

目标代理可由一个或多个转发规则引用。在使用外部 HTTP(S) 负载平衡器内部 HTTP(S) 负载平衡器的情况下,代理会将传入请求路由到某个网址映射。在使用 SSL 代理负载平衡器TCP 代理负载平衡器的情况下,目标代理会将传入请求直接路由到后端服务

API 与 gcloud 参考文档

如需了解通过 REST API 使用目标代理时可用的属性和方法,请参阅以下页面:

如需了解通过 gcloud 命令行工具使用目标代理时可用的属性和方法,请参阅以下页面:

添加目标代理

您可以为以下负载均衡器添加目标代理:

  • 全球外部 HTTP(S) 负载平衡器
  • 全局外部 HTTP(S) 负载均衡器(经典版)
  • 区域级外部 HTTP(S) 负载均衡器
  • 内部 HTTP(S) 负载平衡
  • SSL 代理负载平衡
  • TCP 代理负载平衡

对于全局外部 HTTP(S) 负载均衡器

全局外部 HTTP(S) 负载均衡器仅支持高级层级,并使用全局目标代理。虽然全局外部 HTTP(S) 负载均衡器(经典版)可以部署在高级层级或标准层级中,但无论 Network Service Tiers 如何,它都需要全局目标代理。在标准层级中,区域转发规则指向全局目标代理。

如需添加全球目标 HTTP(S) 代理,请执行以下步骤:

控制台:HTTP

  1. 转到“目标代理”页面。
    转到“目标代理”页面
  2. 点击创建目标代理
  3. 输入名称
  4. (可选)输入说明
  5. 选择类型 HTTP Proxy
  6. 选择网址映射
  7. 点击创建

控制台:HTTPS

  1. 转到“目标代理”页面。
    转到“目标代理”页面
  2. 点击创建目标代理
  3. 输入名称
  4. (可选)输入说明
  5. 选择类型 HTTPS Proxy
  6. 如果您已经拥有要用作主 SSL 证书的 SSL 证书资源,请从证书下拉菜单中选择它。
    如果您尚未创建 SSL 证书资源,请选择创建新证书。您可以创建 Google 管理的证书(推荐自行管理的证书
  7. 通过重复上一步来添加其他证书
  8. 选择网址映射
  9. 点击创建

gcloud:HTTP

gcloud compute target-http-proxies create HTTP_PROXY_NAME \
  --global \
  --url-map URL_MAP \
  --global-url-map \
  [--description DESCRIPTION]

gcloud:HTTPS

在运行此命令之前,您必须为每个证书创建一个 SSL 证书资源。

 gcloud compute target-https-proxies create HTTPS_PROXY_NAME \
   --global \
   --url-map URL_MAP \
   --global-url-map \
   --ssl-certificates SSL_CERT_1[,SSL_CERT_2,...] \
   --global-ssl-certificates \
   [--ssl-policy POLICY_NAME] \
   [--quic-override=ENABLE|DISABLE|NONE]

API:HTTP

POST https://www.googleapis.com/v1/compute/projects/PROJECT_ID/global/targetHttpProxies

{
  "name": HTTP_PROXY_NAME,
  "urlMap": /projects/PROJECT_ID/global/urlMaps/URL_MAP_NAME
}

API:HTTPS

POST https://www.googleapis.com/v1/compute/projects/PROJECT_ID/global/targetHttpsProxies

{
  "name": HTTPS_PROXY_NAME,
  "urlMap": /projects/PROJECT_ID/global/urlMaps/URL_MAP_NAME,
  "sslCertificates": /projects/PROJECT_ID/global/sslCertificates/SSL_CERT_NAME
}

对于区域级外部 HTTP(S) 负载均衡器和内部 HTTP(S) 负载均衡器

对于区域级外部 HTTP(S) 负载均衡器和内部 HTTP(S) 负载均衡器,需要区域目标代理。

如需添加地区目标 HTTP(S) 代理,请执行以下步骤:

控制台

不支持使用 Cloud Console 创建独立的地区目标 HTTP(S) 代理。

gcloud:HTTP

gcloud compute target-http-proxies create HTTP_PROXY_NAME \
    --url-map URL_MAP \
    --url-map-region REGION \
    --region REGION \
    [--description DESCRIPTION]

gcloud:HTTPS

在运行此命令之前,您必须为每个证书创建一个 SSL 证书资源。

 gcloud compute target-https-proxies create HTTPS_PROXY_NAME \
     --url-map URL_MAP \
     --url-map-region REGION \
     --region REGION \
     --ssl-certificates SSL_CERT_NAME \
     --ssl-certificates-region REGION

API:HTTP

POST https://www.googleapis.com/v1/compute/projects/PROJECT_ID/regions/REGION/targetHttpProxies

{
  "name": HTTP_PROXY_NAME,
  "urlMap": /projects/PROJECT_ID/regions/REGION/urlMaps/URL_MAP_NAME,
  "region": REGION
}

API:HTTPS

POST https://www.googleapis.com/v1/compute/projects/PROJECT_ID/region/REGION/targetHttpsProxies

{
  "name": HTTPS_PROXY_NAME,
  "urlMap": /projects/PROJECT_ID/regions/REGION/urlMaps/URL_MAP_NAME,
  "region": REGION
  "sslCertificates": /projects/PROJECT_ID/regions/REGION/sslCertificates/SSL_CERT_NAME
}

对于 SSL 代理负载平衡器

对于 SSL 代理负载均衡器,标准层级和优质层级都需要全球目标代理。这意味着,在标准层级中,区域转发规则指向全球目标代理。

如需添加全球目标 SSL 代理,请执行以下步骤:

控制台

  1. 转到“目标代理”页面。
    转到“目标代理”页面
  2. 点击创建目标代理
  3. 输入名称
  4. (可选)输入说明
  5. 选择类型 SSL Proxy
  6. 如果您已经拥有要用作主 SSL 证书的 SSL 证书资源,请从证书下拉菜单中选择它。如果没有,请选择创建新证书
    1. 输入名称
    2. 建议您上传以下文件,或者也可以将其内容复制粘贴到相应的字段中:
      • 公钥证书(.crt 文件)。
      • 证书链(.csr 文件)。
      • 私钥(.key 文件)。
  7. 通过重复上一步来添加其他证书
  8. 选择后端服务
  9. (可选)启用代理协议
  10. 点击创建

gcloud

在运行此命令之前,您必须为每个证书创建一个 SSL 证书资源

 gcloud compute target-ssl-proxies create SSL_PROXY_NAME \
   --backend-service BACKEND_SERVICE \
   --ssl-certificates SSL_CERT_1[,SSL_CERT_2,...] \
   [--ssl-policy POLICY_NAME] \
   [--quic-override=ENABLE|DISABLE|NONE] \
   [--proxy-header=(NONE | PROXY_V1)]

API

POST https://www.googleapis.com/v1/compute/projects/PROJECT_ID/global/targetSslProxies

{
  "name": SSL_PROXY_NAME,
  "proxyHeader": ("NONE" | "PROXY_V1"),
  "service": "projects/PROJECT/global/backendServices/BACKEND_SERVICE"
  "sslCertificates": /projects/PROJECT_ID/global/sslCertificates/SSL_CERT_NAME
}

对于 TCP 代理负载平衡器

如需添加全球目标 TCP 代理,请执行以下步骤:

控制台

  1. 转到“目标代理”页面。
    转到“目标代理”页面
  2. 点击创建目标代理
  3. 输入名称
  4. (可选)输入说明
  5. 选择类型 TCP Proxy
  6. 选择后端服务
  7. (可选)启用代理协议
  8. 点击创建

gcloud

 gcloud compute target-tcp-proxies create TCP_PROXY_NAME \
   --backend-service BACKEND_SERVICE \
   --proxy-header=(NONE | PROXY_V1)

API

POST https://www.googleapis.com/v1/compute/projects/PROJECT_ID/global/targetTcpProxies

{
  "name": TCP_PROXY_NAME,
  "proxyHeader": ("NONE" | "PROXY_V1"),
  "service": "projects/PROJECT/global/backendServices/BACKEND_SERVICE"
}

列出目标代理

如需列出目标代理,请执行以下步骤。

对于全局外部 HTTP(S) 负载均衡器

控制台

转到“目标代理”页面。
转到“目标代理”页面

gcloud:HTTP

gcloud compute target-http-proxies list --global

gcloud:HTTPS

gcloud compute target-https-proxies list --global

API:HTTP

GET https://compute.googleapis.com/compute/v1/projects/PROJECT_ID/global/targetHttpProxies

API:HTTPS

GET https://compute.googleapis.com/compute/v1/projects/PROJECT_ID/global/targetHttpsProxies

对于区域级外部 HTTP(S) 负载均衡器和内部 HTTP(S) 负载均衡器

控制台

转到“目标代理”页面。
转到“目标代理”页面

gcloud:HTTP

gcloud compute target-http-proxies list \
    --filter="region:(COMMA_DELIMITED_LIST_OF_REGIONS)"

gcloud:HTTPS

gcloud compute target-https-proxies list \
   --filter="region:(COMMA_DELIMITED_LIST_OF_REGIONS)"

API:HTTP

GET https://compute.googleapis.com/compute/v1/projects/PROJECT_ID/regions/REGION/targetHttpProxies

API:HTTPS

GET https://compute.googleapis.com/compute/v1/projects/PROJECT_ID/regions/REGION/targetHttpsProxies

对于 SSL 代理负载平衡器

控制台

转到“目标代理”页面。
转到“目标代理”页面

gcloud

gcloud compute target-ssl-proxies list

API

GET https://compute.googleapis.com/compute/v1/projects/PROJECT_ID/global/targetSslProxies

对于 TCP 代理负载平衡器

控制台

转到“目标代理”页面。
转到“目标代理”页面

gcloud

gcloud compute target-tcp-proxies list

API

GET https://compute.googleapis.com/compute/v1/projects/PROJECT_ID/global/targetTcpProxies

获取有关目标代理的信息

如需获取单个目标 HTTP 或 HTTPS 代理的相关信息,请执行以下步骤。

对于全局外部 HTTP(S) 负载均衡器

控制台

  1. 转到“目标代理”页面。
    转到“目标代理”页面
  2. 选择目标名称
  3. 查看目标详情屏幕。如需返回“负载平衡”屏幕,请点击屏幕顶部的向左箭头。

gcloud:HTTP

gcloud compute target-http-proxies describe HTTP_PROXY_NAME \
   --global

gcloud:HTTPS

gcloud compute target-https-proxies describe HTTPS_PROXY_NAME \
   --global

API:HTTP

GET https://compute.googleapis.com/compute/v1/projects/PROJECT_ID/global/targetHttpProxies/HTTP_PROXY_NAME

API:HTTPS

GET https://compute.googleapis.com/compute/v1/projects/PROJECT_ID/global/targetHttpsProxies/HTTPS_PROXY_NAME

对于区域级外部 HTTP(S) 负载均衡器和内部 HTTP(S) 负载均衡器

控制台

  1. 转到“目标代理”页面。
    转到“目标代理”页面
  2. 选择目标名称
  3. 查看目标详情屏幕。如需返回“负载平衡”屏幕,请点击屏幕顶部的向左箭头。

gcloud:HTTP

gcloud compute target-http-proxies describe HTTP_PROXY_NAME \
   --region=REGION

gcloud:HTTPS

gcloud compute target-https-proxies describe HTTPS_PROXY_NAME \
   --region=REGION

API:HTTP

GET https://compute.googleapis.com/compute/v1/projects/PROJECT_ID/regions/REGION/targetHttpProxies/HTTP_PROXY_NAME

API:HTTPS

GET https://compute.googleapis.com/compute/v1/projects/PROJECT_ID/regions/REGION/targetHttpsProxies/HTTPS_PROXY_NAME

对于 SSL 代理负载平衡器

控制台

  1. 转到“目标代理”页面。
    转到“目标代理”页面
  2. 选择目标名称
  3. 查看目标详情屏幕。如需返回“负载平衡”屏幕,请点击屏幕顶部的向左箭头。

gcloud

gcloud compute target-ssl-proxies describe SSL_PROXY_NAME

API

GET https://compute.googleapis.com/compute/v1/projects/PROJECT_ID/global/targetSslProxies/SSL_PROXY_NAME

对于 TCP 代理负载平衡器

控制台

  1. 转到“目标代理”页面。
    转到“目标代理”页面
  2. 选择目标名称
  3. 查看目标详情屏幕。如需返回“负载平衡”屏幕,请点击屏幕顶部的向左箭头。

gcloud

gcloud compute target-tcp-proxies describe TCP_PROXY_NAME

API

GET https://compute.googleapis.com/compute/v1/projects/PROJECT_ID/global/targetTcpProxies/TCP_PROXY_NAME

更新目标代理以指向其他网址映射

如需更新目标代理以使其指向其他网址映射,请执行以下步骤。

对于全局外部 HTTP(S) 负载均衡器

如需更新与目标代理关联的网址映射,请执行以下步骤:

控制台

无法在 Cloud Console 中修改 HTTP(S) 代理。不过,您可以通过删除重新添加目标代理来实现此操作。或者,您可以使用 gcloud 或 API 修改目标代理。

gcloud:HTTP

gcloud compute target-http-proxies update HTTP_PROXY_NAME \
    --url-map URL_MAP \
    --global \
    --global-url-map

gcloud:HTTPS

gcloud compute target-https-proxies update HTTPS_PROXY_NAME \
    --url-map URL_MAP \
    --global \
    --global-url-map

API:HTTP

POST https://compute.googleapis.com/compute/v1/projects/PROJECT_ID/global/targetHttpProxies/HTTP_PROXY_NAME/setUrlMap

{
  "urlMap": /projects/PROJECT_ID/global/urlMaps/URL_MAP_NAME
}

API:HTTPS

POST https://compute.googleapis.com/compute/v1/projects/PROJECT_ID/global/targetHttpsProxies/HTTPS_PROXY_NAME/setUrlMap

{
  "urlMap": "urlMap": /projects/PROJECT_ID/global/urlMaps/URL_MAP_NAME
}

对于区域级外部 HTTP(S) 负载均衡器和内部 HTTP(S) 负载均衡器

如需更新与目标代理关联的网址映射,请执行以下步骤:

控制台

无法在 Cloud Console 中修改 HTTP(S) 代理。不过,您可以通过删除重新添加目标代理来实现此操作。或者,您可以使用 gcloud 或 API 修改目标代理。

gcloud:HTTP

gcloud compute target-http-proxies update HTTP_PROXY_NAME \
    --url-map URL_MAP \
    --region=REGION \
    --url-map-region=REGION

gcloud:HTTPS

gcloud compute target-https-proxies update HTTPS_PROXY_NAME \
    --url-map URL_MAP \
    --region=REGION \
    --url-map-region=REGION

API:HTTP

POST https://compute.googleapis.com/compute/v1/projects/PROJECT_ID/regions/REGION/targetHttpProxies/HTTP_PROXY_NAME/setUrlMap

{
  "urlMap": /projects/PROJECT_ID/regions/REGIONurlMaps/URL_MAP_NAME
}

API:HTTPS

POST https://compute.googleapis.com/compute/v1/projects/PROJECT_ID/regions/REGION/targetHttpsProxies/HTTPS_PROXY_NAME/setUrlMap

{
  "urlMap": /projects/PROJECT_ID/regions/REGION/urlMaps/URL_MAP_NAME
}

更新目标 HTTPS 代理的 SSL 证书资源

通过此过程可以替换 HTTPS 代理上的 SSL 证书。您必须已经创建了所需的其他所有 SSL 证书资源。

控制台

  1. 转到 Google Cloud Console 中的“负载平衡”页面。

    转到“负载平衡”页面

  2. 点击您的负载平衡器旁边的修改

  3. 点击前端配置

  4. 证书下拉菜单中,选择新的证书。

  5. 如果您需要添加更多证书,请点击 Add certificate

  6. 点击完成

gcloud

您可以为每个目标 HTTPS 代理配置规定数量的 SSL 证书。

gcloud compute target-https-proxies update PROXY_NAME \
    --ssl-certificates=SSL_CERT_1,SSL_CERT_2,...

API:HTTPS

DELETE [https://www.googleapis.com/compute/v1/projects/PROJECT_ID/global/targetHttpsProxies/HTTPS_PROXY_NAME]
POST [https://www.googleapis.com/compute/v1/projects/PROJECT_ID/global/targetHttpsProxies]
{
  "name": HTTPS_PROXY_NAME,
  "sslCertificates": [
    SSL_CERT_1,SSL_CERT_2
  ]
}

删除目标代理

如需删除目标 HTTP 或 HTTPS 代理,请执行以下步骤。

对于全局外部 HTTP(S) 负载均衡器

控制台

  1. 转到“目标代理”页面。
    转到“目标代理”页面
  2. 选择目标代理
  3. 点击要删除的目标名称对应的复选框。
  4. 点击删除

gcloud:HTTP

gcloud compute target-http-proxies delete HTTP_PROXY_NAME \
   --global

gcloud:HTTPS

gcloud compute target-https-proxies delete HTTPS_PROXY_NAME \
   --global

API:HTTP

DELETE https://compute.googleapis.com/compute/v1/projects/PROJECT_ID/global/targetHttpProxies/HTTP_PROXY_NAME

API:HTTPS

DELETE https://www.googleapis.com/compute/v1/projects/PROJECT_ID/global/targetHttpsProxies/HTTPS_PROXY_NAME

对于区域级外部 HTTP(S) 负载均衡器和内部 HTTP(S) 负载均衡器

控制台

  1. 转到“目标代理”页面。
    转到“目标代理”页面
  2. 选择目标代理
  3. 点击要删除的目标名称对应的复选框。
  4. 点击删除

gcloud:HTTP

gcloud compute target-http-proxies delete HTTP_PROXY_NAME \
   --region=REGION

gcloud:HTTPS

gcloud compute target-https-proxies delete HTTPS_PROXY_NAME \
   --region=REGION

API:HTTP

DELETE https://www.googleapis.com/compute/v1/projects/PROJECT_ID/regions/REGION/targetHttpProxies/HTTP_PROXY_NAME

API:HTTPS

DELETE https://www.googleapis.com/compute/v1/projects/PROJECT_ID/regions/REGION/targetHttpsProxies/HTTPS_PROXY_NAME

对于 SSL 代理负载平衡器

控制台

  1. 转到“目标代理”页面。
    转到“目标代理”页面
  2. 选择目标代理
  3. 点击要删除的目标名称对应的复选框。
  4. 点击删除

gcloud

gcloud compute target-ssl-proxies delete SSL_PROXY_NAME

API

DELETE https://www.googleapis.com/compute/v1/projects/PROJECT_ID/global/targetSslProxies/SSL_PROXY_NAME

对于 TCP 代理负载平衡器

控制台

  1. 转到“目标代理”页面。
    转到“目标代理”页面
  2. 选择目标代理
  3. 点击要删除的目标名称对应的复选框。
  4. 点击删除

gcloud

gcloud compute target-tcp-proxies delete TCP_PROXY_NAME

API

DELETE https://www.googleapis.com/compute/v1/projects/PROJECT_ID/global/targetTcpProxies/TCP_PROXY_NAME

更新 QUIC 协议设置

目标 HTTPS 代理支持将 QUIC 传输协议与可选标志 --quic-override 配合使用。

控制台:HTTPS

“目标代理”页面当前不支持设置 QUIC 协商。设置新的负载平衡器时,您可以使用 Cloud Console 来配置 QUIC 设置,如配置负载均衡资源中所示。

gcloud:HTTPS

在运行此命令之前,您必须为每个证书创建一个 SSL 证书资源。

 gcloud compute target-https-proxies create HTTPS_PROXY_NAME \
   --global \
   --quic-override=QUIC_SETTING

其中 QUIC_SETTING 是以下值之一:

  • NONE(默认值)允许 Google 控制 QUIC 的协商时间。目前,当您选择 NONE 时,QUIC 处于停用状态。选择此选项,即表示您允许 Google 以后自动为此负载平衡器启用 QUIC 协商和 HTTP/3。在 Cloud Console 中,此选项称为自动(默认)
  • ENABLED 允许负载平衡器与客户端协商 QUIC。
  • DISABLED 防止负载平衡器与客户端协商 QUIC。

API:HTTPS

POST https://www.googleapis.com/v1/compute/projects/PROJECT_ID/global/targetHttpsProxies/TARGET_PROXY_NAME/setQuicOverride

{
  "quicOverride": QUIC_SETTING
}

其中 QUIC_SETTING 是以下值之一:

  • NONE(默认值)允许 Google 控制 QUIC 的协商时间。目前,当您选择 NONE 时,QUIC 处于停用状态。选择此选项,即表示您允许 Google 以后自动为此负载平衡器启用 QUIC 协商和 HTTP/3。在 Cloud Console 中,此选项称为自动(默认)
  • ENABLED 允许负载平衡器与客户端协商 QUIC。
  • DISABLED 防止负载平衡器与客户端协商 QUIC。

后续步骤