我目前有一个 VirtualHost 配置为在两台服务器之间进行负载平衡。但是,为了避免两个实例都处于活动状态时出现竞争条件,我想切换到热/温配置,其中仅当第一个服务器出现故障时才使用第二个服务器。我如何在我的 http.conf 文件中配置它?
这是我当前的虚拟主机配置:
<VirtualHost *:8080>
Header set Access-Control-Allow-Origin "*"
ServerName redacted.example.com
ProxyPreserveHost On
<Proxy balancer://mycluster>
BalancerMember http://10.0.0.1:8080
BalancerMember http://10.0.0.2:8080
</Proxy>
ProxyPass / balancer://mycluster
ProxyPassReverse / balancer://mycluster
</VirtualHost>
旁注:我更愿意使用 apache httpd 来完成此任务,但如果 apache 无法处理它,我可能会考虑其他技术。我不确定我是否有正确的术语来描述“仅当 beta 下降时才使用 alpha”情况(例如热/温、故障转移、负载平衡)
答案1
显然,我正在寻找的术语是“热备用”。这是适当的配置(注意状态=+H):
<VirtualHost *:8080>
Header set Access-Control-Allow-Origin "*"
ServerName redacted.example.com
ProxyPreserveHost On
<Proxy balancer://mycluster>
BalancerMember http://10.0.0.1:8080
BalancerMember http://10.0.0.2:8080 status=+H
</Proxy>
ProxyPass / balancer://mycluster
ProxyPassReverse / balancer://mycluster
</VirtualHost>
这是相关的位文档:
status - 定义此 worker 的初始状态的单个字母值。 [...] H:Worker 处于热备用模式,仅在没有其他可用 Worker 时才会使用。