使用目标代理

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

目标代理属性

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

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

添加目标代理

您可以为以下类型的负载平衡添加目标代理:

  • 外部 HTTP(S) 负载平衡
  • 内部 HTTP(S) 负载平衡
  • SSL 代理负载平衡
  • TCP 代理负载平衡

对于外部 HTTP(S) 负载平衡器

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

控制台:HTTP

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

控制台:HTTPS

  1. 转到“目标代理”页面。
    转到“目标代理”页面
  2. 点击创建目标代理
  3. 输入名称
  4. (可选)输入说明
  5. 选择类型 HTTPS Proxy
  6. 如果您已经拥有要用作主 SSL 证书的 SSL 证书资源,请从证书下拉菜单中选择它。如果没有,请选择创建新证书
    1. 输入名称
    2. 建议您上传以下文件,或者也可以将其内容复制粘贴到相应的字段中:
      • 公钥证书(.crt 文件)。
      • 证书链(.csr 文件)。
      • 私钥(.key 文件)。
  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) 代理,请执行以下步骤:

控制台

不支持使用 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 代理,请执行以下步骤:

控制台

  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) 负载平衡器

控制台

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

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) 负载平衡器

控制台

  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) 负载平衡器

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

控制台

无法在 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
}

删除目标代理

如需删除目标 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) 负载平衡器

控制台

  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。

后续步骤