我想使用 Apache 2.4.43 (windows) 和两个 Tomcats 服务器创建一个负载平衡环境。
使用“mod_proxy_hcheck”模块应该实现一些基本的健康检查操作,这些操作基于官方文档:https://httpd.apache.org/docs/2.4/mod/mod_proxy_hcheck.html
我的配置
ProxyHCExpr ok2 {%{REQUEST_STATUS} =~ /^[2]/}
<Proxy balancer://appcluster>
BalancerMember http://localhost:8080/app-SNAPSHOT route=server1 secret=1337 hcmethod=HEAD hcexpr=ok2 hcinterval=10 hcpasses=2 hcfails=3
BalancerMember http://localhost:9090/app-SNAPSHOT route=server2 secret=1337 hcmethod=HEAD hcexpr=ok2 hcinterval=10 hcpasses=2 hcfails=3
ProxySet lbmethod=byrequests
ProxySet stickysession=JSESSIONID|jsessionid
</Proxy>
ProxyPass /app-SNAPSHOT balancer://appcluster
ProxyPassReverse /app-SNAPSHOT balancer://appcluster
我的问题:每当我使用 mod_proxy_hcheck 文档中记录的任何参数时,我的服务器都无法启动。Winodws 事件查看器中记录了以下错误消息,名为 Apache 的服务报告了以下错误:
无效命令“ProxyHCExpr”,可能是拼写错误或由服务器配置中未包含的模块定义。
我已经尝试过并删除了那些mod_proxy_hcheck
相关参数ProxyHCExpr, hcfails, hcpasses, hcinterval, hcexpr, hcmethod
,但是只要激活一个,服务就会在启动时崩溃。
我尝试过/搜索过的内容:
mod_proxy_hcheck
我在我的文件中搜索了该模块httpd.conf
,但它没有列在这里。所以我检查了<apacheInstallDir>\modules
:该文件mod_proxy_hcheck.so
存在- 我已将该行添加
LoadModule proxy_hcheck_module modules/mod_proxy_hcheck.so
到我的httpd.conf
,但服务启动失败。
还有什么想法吗?
答案1
确保文件LoadModule watchdog_module modules/mod_watchdog.so
中也包含httpd.conf
。
官方文档中也提到了这一点https://httpd.apache.org/docs/2.4/mod/mod_proxy_hcheck.html#Summary请参阅“摘要”部分。