Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/google-cloud-platform/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Google cloud platform 用于HTTP/HTTPS的GCE(谷歌计算引擎),支持IPv6,但不支持SSL卸载_Google Cloud Platform_Google Compute Engine_Ipv6 - Fatal编程技术网

Google cloud platform 用于HTTP/HTTPS的GCE(谷歌计算引擎),支持IPv6,但不支持SSL卸载

Google cloud platform 用于HTTP/HTTPS的GCE(谷歌计算引擎),支持IPv6,但不支持SSL卸载,google-cloud-platform,google-compute-engine,ipv6,Google Cloud Platform,Google Compute Engine,Ipv6,我想在Google计算引擎上运行一个Web服务器,既可以通过HTTP和HTTPS使用,也可以通过IPv6使用。 Google cloud只在loadbalancer中支持IPv6,所以我需要在那里设置它。我还需要处理我自己的SSL(我有很好的理由),所以我不能使用SSL卸载 由于我没有使用SSL卸载,我需要对HTTPS/port443使用“TCP(代理)”(根据,我也因为无法以任何其他方式使其工作) 我的端口443正在工作,现在我需要添加HTTP/port80。我目前正在尝试使用webinter

我想在Google计算引擎上运行一个Web服务器,既可以通过HTTP和HTTPS使用,也可以通过IPv6使用。 Google cloud只在loadbalancer中支持IPv6,所以我需要在那里设置它。我还需要处理我自己的SSL(我有很好的理由),所以我不能使用SSL卸载

由于我没有使用SSL卸载,我需要对HTTPS/port443使用“TCP(代理)”(根据,我也因为无法以任何其他方式使其工作)

我的端口443正在工作,现在我需要添加HTTP/port80。我目前正在尝试使用webinterface配置此功能。我试过:

  • TCP(代理):这不允许我选择端口80
  • TCP-LB:配置后端后,前端不再提及IPv6,只允许我创建新的IPv4或选择内部IP
  • HTTP:这似乎是个好主意,但是:
    • 如果我使用现有instancegroup并设置端口“80”,这也会将https的后端设置更改为端口80
    • 如果我输入“80443”,它似乎会随机选择其中一个端口,而不是流量进入的端口
    • 如果我创建了一个新的实例组,其中包含相同的实例,则会出现错误“实例最多可能属于一个负载平衡实例组”

  • 如何让https和http在不使用SSL卸载的情况下在IPv6上工作?

    实际上,TCP代理负载平衡器中使用端口80有一个限制。话虽如此,TCP代理LB只有以下端口可用作目标代理: -25、43、110、143、195、443、465、587、700、993、995、1883、5222

    因此,我们无法对端口80使用目标TCP代理

    此信息来源于此,其中还提供了有关此类型负载平衡器的概述和概念。请注意,在这种情况下可以使用端口443


    您是否尝试过使用网络负载平衡器?它可能会对您有所帮助,请参阅附件以了解更多详细信息。

    是的,我在最后复制了这个问题,它没有提供任何选择IPV6的选项

    在做了一些研究并与我的团队确认分配给GCP VM实例的外部IP地址是区域外部IP地址后,我发现这些地址只能是IPv4,不能是IPv6。我们仅对全局外部IP地址支持IPv6,并且全局外部IP地址只能与高级层中的以下负载平衡器之一一起使用: -HTTP(S) -SSL代理 -TCP代理

    因此,您应该能够通过将虚拟机置于TCP代理负载平衡器之后(但仅限于HTTPS),部分完成您试图实现的目标—虚拟机的外部IPv6地址。正如您所知,TCP 80不在TCP代理负载平衡支持的端口列表中,但它确实支持TCP 443,并且它只终止TCP会话,这应该允许它们在后端VM本身上终止HTTPS

    SSL代理负载平衡也存在同样的问题,因为它不支持端口80。使用HTTPS负载平衡器的问题是它必须在负载平衡器处终止。负载平衡器仍然可以通过HTTPS与后端VM通信,但负载平衡器仍然可以进行面向公共的HTTPS终止。这也不适合您,因为您不想进行SSL卸载。因此,结论是,如果不使用SSL卸载,就不可能完全使用https和HTTP在IPv6上工作。从本页看,网络负载平衡器似乎不支持IPv6。据我所知,手动调用的网络负载平衡器位于名为TCP-LB和UDP-LB的控制台中。我尝试了TCP-LB,但这并没有让我选择IPv6I最终(某种程度上)解决了它。解决方案归结为将端口80的HTTP-LB与端口443的TCP(代理)相结合。但问题是不能让它们指向同一个VM上的两个不同端口。一种解决方案是为端口80提供一个VM,为端口443提供一个单独的VM。然而,我们选择在我们的工具中实现端口统一来解决这个问题。这使我们能够在同一端口上响应http和https请求。