<-
Apache HTTP 服务器 2.4 > Apache模块mod_proxy_hcheck

Apache模块mod_proxy_hcheck

描述:平衡器成员(工人)的动态健康检查 mod_proxy
状态:延期
模块标识符:proxy_hcheck_module
源文件:mod_proxy_hcheck.c
兼容性:在Apache 2.4.21及更高版本中可用

摘要

此模块提供对平衡器成员(工人)的动态运行状况检查。可以逐个工人启用此功能。运行状况检查与实际的反向代理请求无关。

此模块需要的服务mod_watchdog

参量

运行状况检查机制通过使用其他BalancerMember参数启用 ,这些参数以标准方式通过ProxyPass以下方式配置:

通过以下模块定义新的BalancerMember 状态状态(标志):“ C”。当由于运行状况检查模块确定的故障使工作人员下线时,将设置此标志,并可以通过查看和修改此标志 balancer-manager

参数 默认 描述
方法 没有 没有执行动态运行状况检查。选择是:
方法描述注意
没有没有进行动态健康检查
TCP协议检查是否可以创建后端的套接字:例如“您在吗”
选项HTTP OPTIONS向后端发送请求*
HTTP HEAD向后端发送请求*
得到HTTP GET向后端发送请求*
*:除非hcexpr使用,否则2xx或3xx HTTP状态将被解释为通过健康检查
通行证 1个 重新启用工作程序之前成功进行的健康检查测试的次数
hcfails 1个 禁用工作人员之前健康检查失败的次数
间隔 30 健康检查周期(以秒为单位)(例如,每30秒执行一次)
胡里   要附加到工作人员URL的其他URI,以进行健康检查。
模板   通过创建的模板名称,ProxyHCTemplate用于为此工作人员设置健康检查参数
hcexpr   通过创建的表达式名称ProxyHCExpr,用于检查响应标头的运行状况。
如果未使用,则2xx至3xx状态代码表示成功
支持Apache!

主题

指令

错误修正清单

也可以看看

最佳

用法示例

以下示例显示了如何配置各种后端服务器的运行状况检查:

ProxyHCExpr ok234 {%{REQUEST_STATUS} =~ /^[234]/}
ProxyHCExpr gdown {%{REQUEST_STATUS} =~ /^[5]/}
ProxyHCExpr in_maint {hc('body') !~ /Under maintenance/}

<Proxy balancer://foo>
  BalancerMember http://www.example.com/  hcmethod=GET hcexpr=in_maint hcuri=/status.php
  BalancerMember http://www2.example.com/ hcmethod=HEAD hcexpr=ok234 hcinterval=10
  BalancerMember http://www3.example.com/ hcmethod=TCP hcinterval=5 hcpasses=2 hcfails=3
  BalancerMember http://www4.example.com/
</Proxy>

ProxyPass "/" "balancer://foo"
ProxyPassReverse "/" "balancer://foo"

在这种情况下,http://www.example.com/通过GET /status.php 向该服务器发送请求并查看返回的页面不包含字符串Under maintenance来检查运行状况。如果是这样,则该服务器将进入运行状况检查失败模式,并被禁用。此动态检查每30秒执行一次,这是默认设置。

http://www2.example.com/通过HEAD每10秒发送一次简单请求并确保响应状态为2xx,3xx或4xx来检查。http://www3.example.com/仅通过确保该服务器的套接字已启动即可每5秒检查一次。如果后端被标记为“关闭”,并且通过了2次健康检查,它将被重新启用并重新添加到负载均衡器中。要使服务器禁用并将其移出旋转,需要进行3次连续的运行状况检查失败。最后,http://www4.example.com/根本不进行动态检查。

最佳

ProxyHCExpr 指令

描述:创建一个命名条件表达式,用于根据其响应确定后端的运行状况
句法:ProxyHCExpr name {ap_expr expression}
内容:服务器配置,虚拟主机
状态:延期
模块:mod_proxy_hcheck

ProxyHCExpr指令允许创建一个命名条件表达式,该表达式检查后端服务器的响应标头以确定其运行状况。然后可以通过hcexpr 参数将此平衡条件分配给平衡器成员。

ProxyHCExpr:允许传递2xx / 3xx / 4xx

ProxyHCExpr ok234 {%{REQUEST_STATUS} =~ /^[234]/}
ProxyPass "/apps"     "balancer://foo"

<Proxy balancer://foo>
  BalancerMember http://www2.example.com/  hcmethod=HEAD hcexpr=ok234 hcinterval=10
</Proxy>
表达式可以使用大括号(“ {}”)作为引号之外的引号。

如果使用运行状况检查方法(例如GET:)来生成响应主体,则可以ap_expr使用hc() 该模块独有的表达式函数来检查该主体本身。

在以下示例中,我们向后端发送一个GET请求,并且如果响应正文中包含短语Under maintenance,则我们希望禁用后端。

ProxyHCExpr:检查响应正文

ProxyHCExpr in_maint {hc('body') !~ /Under maintenance/}
ProxyPass "/apps"     "balancer://foo"

<Proxy balancer://foo>
  BalancerMember http://www.example.com/ hcexpr=in_maint hcmethod=get hcuri=/status.php
</Proxy>

注意:由于响应主体可能很大,因此最好将其用于特定状态页面。

最佳

ProxyHCTemplate 指令

描述:创建一个命名模板以设置各种健康检查参数
句法:ProxyHCTemplate name parameter=setting [...]
内容:服务器配置,虚拟主机
状态:延期
模块:mod_proxy_hcheck

ProxyHCTemplate指令允许创建一个命名的健康检查参数集(模板),然后可以通过该hctemplate 参数将其分配给平衡器成员。

代理HC模板

ProxyHCTemplate tcp5 hcmethod=tcp hcinterval=5
ProxyPass "/apps"     "balancer://foo"

<Proxy balancer://foo>
  BalancerMember http://www2.example.com/ hctemplate=tcp5
</Proxy>
最佳

ProxyHCTPsize 指令

描述:设置用于运行状况检查工作程序的线程池在服务器范围内的总大小
句法:ProxyHCTPsize size
默认:ProxyHCTPsize 16
内容:服务器配置
状态:延期
模块:mod_proxy_hcheck

如果Apache httpd和APR带有线程支持,则运行状况检查模块会将实际检查的工作分流到与Watchdog进程关联的线程池中,从而允许并行检查。该ProxyHCTPsize指令确定此线程池的大小。如果设置为0,则根本不使用线程池,从而导致序列化运行状况检查。

代理HCTPsize

ProxyHCTPsize 32

可用语言: zh  |  fr 

最佳

注释

注意:
这不是“问答”部分。此处放置的评论应指向有关改进文档或服务器的建议,如果实施或被认为无效/偏离主题,我们的主持人可以将其删除。有关如何管理Apache HTTP Server的问题,应直接指向我们的IRC频道#httpd(位于Freenode上),或发送至我们的邮件列表
目前,此页面已禁用评论。