NGINX-HTTPS负载均衡器配置

时间:2019-08-28 09:28:46

标签: nginx google-cloud-http-load-balancer

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

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

不适用

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

1 个答案:

答案 0 :(得分: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平衡。

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

主要来源:

Load distribution algorithm

Requests per second