2

我正在尝试在 apache httpd 中配置负载平衡。

我有 2 个节点都处于活动状态。但我希望流量只流向对特定路径上的 GET 做出积极响应的节点。

在 ngnix 和 haproxy 中也是如此,但我无法在我当前的项目中使用它们。

4

1 回答 1

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"
于 2018-01-05T05:19:17.133 回答