为 GCP HTTP 负载均衡器配置正确的防火墙设置

为 GCP HTTP 负载均衡器配置正确的防火墙设置

在此处输入图片描述

我有两台虚拟机在端口 8545 上运行 HTTP 服务器(如图所示),并放置在一个实例组中。

我在 GCP 中创建了一个 HTTP 负载均衡器来平衡来自最终用户的 HTTP 请求。但是,使用图中所示的设置和防火墙规则,健康检查失败,我也无法访问http://35.190.34.26:80/

Error: Server Error
The server encountered a temporary error and could not complete your request.
Please try again in 30 seconds.

但是,如果我添加一条允许所有内容的防火墙规则,(0.0.0.0/0 on 8545)则健康检查将通过,并且我也可以访问http://35.190.34.26:80/

但是,我不想编写允许 8545 上的每个人的防火墙规则。配置防火墙的正确方法是什么,以便只有负载均衡器可以访问此端口上的实例组?

答案1

由于全局转发规则配置在端口 80 上,但后端实例在端口 8545 上提供流量,因此需要创建两个单独的防火墙规则,以允许来自 130.211.0.0/22 和 35.191.0.0/16 的流量通过这些端口。这些是负载均衡器用于连接到后端实例的 IP 地址范围。此规则允许来自负载均衡器和健康检查器的流量。

我建议检查后端实例,以确保它正在监听所有地址 (0.0.0.0/0) 并且未绑定到任何特定 IP。此外,在后端实例上运行 tcpdump 将有助于了解流量是否从上述 IP 范围到达实例并继续进一步调试。

有关 Google HTTP(S) 负载平衡的防火墙规则的更多信息,请参阅此帮助中心文章

答案2

我对在 GCP 中安装具有 HA 和负载均衡器的 apache ranger 有类似的要求。只需创建一条防火墙规则,以允许 Ranger 端口 (6080) 上来自 130.211.0.0/22 和 35.191.0.0/16 的流量。

我们要做的一件重要的事情是在健康检查中->选择端口为 6080 的 TCP 协议(​​在您的情况下是 8545)。然后您就可以访问您的负载均衡器 URL。

相关内容