NSX Advanced Load Balancer 可以主动停用后端服务器以进行维护。可以将其配置为使用来自服务器的运行状况检查响应中的信息,以检测服务器是否处于维护模式。
管理员和应用程序开发人员可以使用来自服务器的运行状况检查响应中的信息,以检测服务器是否处于维护模式。该信息可能是特定的响应代码(例如 HTTP 代码 503),也可能是特定的响应消息字符串(例如“服务器正在进行维护”)。
此类事件在运行方式上不同于由于软件问题而关闭的服务器进程。在服务器进行维护时,您不能向服务器发送新连接,并且必须等待现有的连接关闭。
检测维护模式
您可以配置某些类型的运行状况监控器,以根据服务器响应中包含的特定响应代码或响应数据检测服务器何时进入维护模式。该监控器必须与服务器所在的池相关联。
- 响应代码
-
您可以配置 HTTP 和 HTTPS 运行状况监控器以筛选特定的 HTTP 响应代码 (101-599)。如果根据 HTTP 或 HTTPS 监控器在服务器的运行状况检查响应中检测到该代码,则 NSX Advanced Load Balancer 将服务器的状态更改为关闭以进行维护。
- 响应数据
-
您可以配置 TCP、UDP、HTTP 和 HTTPS 运行状况监控器以筛选特定的数据(响应字符串)。如果根据 HTTP 或 HTTPS 监控器在服务器的运行状况检查响应中检测到该字符串,则 NSX Advanced Load Balancer 将服务器的状态更改为关闭以进行维护。响应数据必须位于响应的前 2000 个字节内。
HTTP 或 HTTPS 运行状况监控器最多可以筛选 4 个维护响应代码。
HTTP 和 HTTPS 运行状况监控器可以包含任何以下筛选器组合以检测维护模式:
响应字符串
多个响应代码
维护响应字符串
最多 4 个维护响应代码
TCP 和 UDP 运行状况监控器可以包含基于以下任一项或两项的维护模式筛选器:
响应字符串
维护响应字符串
指示维护模式
在 NSX Advanced Load Balancer 检测到服务器进入维护模式时,服务器的运行状况将更改为关闭以进行维护。
在将服务器标记为 DOWN
以进行维护时,到服务器的现有连接保持不变,并允许这些连接自行关闭。NSX Advanced Load Balancer 继续向该服务器发送运行状况检查。在服务器停止使用维护字符串或代码进行响应时,这向 NSX Advanced Load Balancer 表明维护模式已结束,并将服务器的运行状况更改为 UP
。
类似地,将在事件日志中指示服务器进入和退出维护模式的情况。
配置运行状况监控器以检测服务器维护模式
以下是配置 Web 界面以检测服务器维护模式的步骤:
导航到运行状况监控器的配置弹出窗口:
导航到
。单击运行状况监控器名称旁边的编辑图标。
单击创建按钮以创建新的运行状况监控器。
指定名称,然后选择监控器类型,例如,用于第 4 层的 TCP 或 UDP 以及用于第 7 层的 HTTP 或 HTTPS。
在服务器维护模式部分中,指定响应代码或数据以用作服务器处于维护模式的指示。
单击保存。
具有维护模式检测功能的 HTTPS 运行状况监控器示例:
具有维护模式检测功能的 TCP 运行状况监控器示例:
将运行状况监控器附加到池
运行状况监控器仅用于该监控器附加到的池。
要将运行状况监控器附加到池,请执行以下操作:
导航到
。单击创建按钮。
单击添加主动监控器按钮以选择监控器。下拉菜单将显示一组运行状况监控器。
选择所需的运行状况监控器选项。
CLI
以下命令配置一个 HTTP 运行状况监控器,以筛选来自服务器的运行状况检查响应中的 under construction 字符串:
: > configure healthmonitor System-HTTP : healthmonitor> http_monitor : healthmonitor:http_monitor> maintenance_response "under construction" : healthmonitor:http_monitor> save : healthmonitor> save
以下命令配置相同的 HTTP 运行状况监控器,以筛选来自服务器的运行状况检查响应中的响应代码 500 和 501。以下命令配置一个 HTTP 运行状况监控器,以筛选来自服务器的运行状况检查响应中的 under construction 字符串:
: > configure healthmonitor System-HTTP : healthmonitor> http_monitor : healthmonitor:http_monitor> maintenance_code 500 : healthmonitor:http_monitor> maintenance_code 501 : healthmonitor:http_monitor> save : healthmonitor> save
以下命令编辑运行状况监控器配置以移除响应字符串的筛选器:
: > configure healthmonitor System-HTTP : healthmonitor> http_monitor : healthmonitor:http_monitor> no maintenance_response : healthmonitor:th> save : healthmonitor> save