【问题标题】:Google Cloud Global Forwarding: Invalid value for field resource.IPAddressGoogle Cloud Global Forwarding:字段资源的值无效。IPAddress
【发布时间】:2018-08-30 08:35:40
【问题描述】:

我正在尝试为我的 GCP 虚拟机实现 https 支持。为此,我创建了所有负载均衡组件,即实例组、健康检查、后端服务、url 映射和目标代理。所有的创建都没有错误。 但是现在当我为最后一步创建全局转发规则时,我收到以下错误:

错误:(gcloud.compute.forwarding-rules.create)无法获取 资源: - 字段“resource.IPAddress”的值无效:“35.xxx.xxx.xxx”。指定的 IP 地址无效。

我正在使用以下命令:

gcloud compute forwarding-rules create fa-global-fwding-rule-1 --target-https-proxy=fa-https-proxy-1 --ports=443  --global --address=35.xxx.xxx.xxx

(IP加数字掩码xxx)

我错过了什么?

我已经有一个通过 http 工作的 VM 实例,我已经将它的临时地址提升为静态地址(上面是相同的地址 35.xxx.xxx.xxx)

此外,一旦我实现了 https 支持,我希望 http 连接也能继续工作,这样我现有的 api 在我将它们移动到 https 之前不会受到干扰

有什么建议/帮助吗?

【问题讨论】:

    标签: https google-cloud-platform google-compute-engine


    【解决方案1】:

    GCP 负载均衡器不会检查您选择的静态 IP 是区域性的还是全球性的。如果您不小心保留了“区域”IP 而不是“全局”IP,则会引发该愚蠢的错误:

    “resource.IPAddress”字段的值无效:“35.xxx.xxx.xxx”。 指定的 IP 地址无效。

    【讨论】:

      【解决方案2】:

      我没有发现你的命令有任何问题,这种错误主要是由于IP冲突,如果指定的IP地址正在使用或不可用。转发规则将您的负载均衡器的 IP 地址映射到将处理请求的目标代理。所以首先您需要创建您的 IP 地址。使用此命令: $gcloud 计算地址创建我的地址 --global

      然后创建转发规则。您的 HTTPS 负载均衡器需要一个全局而非区域 IP 地址。使用这个命令:

      $gcloud compute forwarding-rules create my-https-forwarding-rule --global --address 123.123.123.123 --ip-protocol TCP --port-range 443 --target-https-proxy 我的-https-proxy

      您能否确认您使用的是全球 IP 地址还是区域 IP 地址?

      对于 HTTP,您需要为 HTTP 创建一个完全独立的目标 HTTP 代理和转发规则。您基本上需要有两个负载均衡器来处理流量,然后在您的应用程序中实际重定向用户。请注意,我们为 HTTP 转发规则输入了相同的 IP 地址。这样我们就可以在我们的 IP 地址上监听端口 80 和端口 443。

      【讨论】:

      • 感谢您的意见。我发现在地址参数中它支持保留地址的“名称”。然后我摸索着创建全球地址,但最终得到了它。现在,我的 https 健康检查工作正常,但是当我从浏览器访问地址时,它使用 http 链接,但使用 https 它返回 502 服务器错误。我不确定是什么问题。
      • 我使用的是自签名证书。这可能是问题吗?
      猜你喜欢
      • 1970-01-01
      • 2021-07-14
      • 1970-01-01
      • 1970-01-01
      • 2014-11-19
      • 1970-01-01
      • 2017-09-26
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多