Apache ProxyPass 不支持 status 参数,节点热移除依赖 mod_proxy_balancer 的 /balancer-manager 界面;需在 内启用 balancer-manager、定义 balancer 组并配置访问控制,通过界面点击 Disable/Stop 实时下线节点。
apache 的 proxypass 指令本身不支持 status 参数,也不能直接通过它实现节点热移除。所谓“在线节点热移除”,实际依赖的是 mod_proxy_balancer 提供的管理能力,核心入口是 /balancer-manager 管理界面,而非 proxypass 的语法扩展。
要让虚拟主机支持运行时手动下线/上线后端节点,需满足三个前提并正确配置:
-
启用 balancer-manager 模块与路径访问控制
必须在<virtualhost></virtualhost>内显式定义该管理路径,并限制访问权限(如仅限内网或带认证):<Location "/balancer-manager"> SetHandler balancer-manager Require ip 127.0.0.1 10.0.0.0/8 # 或启用 Basic Auth:Require valid-user + AuthType/AuthName/AuthUserFile </Location> -
确保负载均衡器定义在虚拟主机作用域内
<proxy balancer:></proxy>块必须写在<virtualhost></virtualhost>里(不能放在全局配置顶层),否则/balancer-manager无法识别该组:<Proxy balancer://api> BalancerMember http://192.168.1.10:8080 lbset=0 BalancerMember http://192.168.1.11:8080 lbset=0 BalancerMember http://192.168.1.12:8080 lbset=1 </Proxy> ProxyPass /api/ balancer://api/ ProxyPassReverse /api/ balancer://api/ -
节点状态变更靠管理界面操作,非配置参数
启动 Apache 后,访问https://your-domain.com/balancer-manager,即可看到所有balancer://组成员。每行右侧有:- ✅ “Enable” —— 将 DOWN 节点重新激活
- ❌ “Disable” —— 立即标记为
DISABLD,不再接收新请求(当前连接可完成) - ? “Stop” —— 强制置为
STOPPED,拒绝所有流量(含正在处理的请求)
这些操作实时生效,无需 reload 或 restart。
注意:Disable 和 Stop 的区别在于是否允许已建立连接继续完成。生产环境推荐先点 Disable,观察日志无错误后再确认;若需紧急隔离(如节点已卡死),再用 Stop。
不依赖配置文件修改,也不需要重启服务,这就是真正的“在线热移除”。


















