apache mod_proxy_balancer中的健康检查

时间:2015-12-04 01:43:32

标签: apache proxy internal-load-balancer

我正在尝试在apache httpd。

中配置负载平衡

我有2个活跃的节点。但我希望流量只能转到一个节点,该节点在特定路径上对GET做出积极响应。

同样可以在ngnix和haproxy中使用,但我无法在我当前的项目中使用它们。

1 个答案:

答案 0 :(得分:2)

您可以使用mod_proxy_hcheck模块:

https://httpd.apache.org/docs/trunk/mod/mod_proxy_hcheck.html

相关代码段

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"