0

我在同一区域的不同区域创建了 2 个 CentOS 服务器,并在其上安装了 NGINX。创建了像 ig1 & ig2 这样的实例组,并在其中添加了这些服务器。创建了外部负载均衡器。我可以使用公共静态 IP 启动网页。但结果并不如预期。LB 配置中是否有任何循环方法?如果是,我们如何实现这一目标?

我已将实例组的最大 RPS 设置为 1 秒,并将运行状况检查间隔时间设置为 1 秒。

不适用

要求是,每当我刷新一次负载均衡器 IP 时,它应该从不同的实例加载页面。但问题是,我必须多次刷新页面才能从不同的实例加载页面。我不确定缺少什么配置。有人可以帮我弄这个吗?

4

1 回答 1

0

大多数负载均衡器使用循环。

在 GCP HTTP(S) 中,LB 有两种确定实例负载的方法。在后端服务资源中,平衡模式属性在每秒请求数 (RPS) 和 CPU 利用率模式之间进行选择。

您可以通过配置会话亲和性来覆盖循环分发。但是,请注意,如果您还将平衡模式设置为每秒请求数 (RPS),则会话亲和性效果最佳。

只要实例保持健康并具有容量,会话关联就会将来自同一客户端的所有请求发送到同一虚拟机实例。

=================

现在,GCP HTTP(S) LB 提供了两种类型的会话亲和性:

a) 客户端 IP 亲和性——将来自同一客户端 IP 地址的所有请求转发到同一实例。

客户端 IP 亲和性根据客户端 IP 地址的哈希将来自同一客户端 IP 地址的请求定向到同一后端实例。客户端 IP 关联性是每个使用后端服务的 GCP 负载平衡器的选项。

但是,在使用客户端 IP 亲和性时,请记住以下几点:

如果负载均衡器看到的客户端 IP 地址位于 NAT 之后或通过代理发出请求,则它可能不是原始客户端。通过 NAT 或代理发出的请求使用 NAT 路由器或代理的 IP 地址作为客户端 IP 地址。这可能会导致传入流量不必要地聚集到相同的后端实例上。

如果客户端从一个网络移动到另一个网络,则其 IP 地址会更改,从而导致关联性中断。

b) 生成的 cookie 亲和性——设置一个客户端 cookie,然后将所有带有该 cookie 的请求发送到同一个实例。

设置生成的 cookie 亲和性后,负载均衡器会在第一个请求上发出一个名为 GCLB 的 cookie,然后将具有相同 cookie 的每个后续请求定向到同一实例。基于 Cookie 的亲和性允许负载均衡器区分使用相同 IP 地址的不同客户端,以便将这些客户端更均匀地分布在实例中。基于 Cookie 的亲和性允许负载均衡器保持实例亲和性,即使客户端的 IP 地址发生更改。

cookie 的路径始终为 /,因此如果同一主机名上有两个后端服务启用基于 cookie 的亲和性,则这两个服务由同一个 cookie 平衡。

============================

主要来源:

负载分配算法

每秒请求数

于 2019-08-29T17:39:48.133 回答