apache 将 mod_proxy_balancer 的初始化状态存储在何处

apache 将 mod_proxy_balancer 的初始化状态存储在何处

apache2在 Ubuntu 上运行缓存负载平衡反向代理,位于一组应用服务器的前面。我注意到平衡器会维护一些可见属性的状态,例如/balancer-managerIP 是否启用/禁用、负载因子等。

我的网站有使用率高(和低)的时期,最近当我向工作组添加新服务器时,我注意到负载平衡器选择了新服务器,但将其设置为Disabled。我很好奇这些数据存储在哪里,以及/或者如何初始化。

平衡器配置(为保护无辜者,名称已更改):

SSLProxyEngine On
<Proxy balancer://main>
    BalancerMember https://10.10.1.1
    BalancerMember https://10.10.1.2
    BalancerMember https://10.10.1.3
</Proxy>

ProxyRequests Off
ProxyPass /balancer-manager !
ProxyPass /  balancer://main/
ProxyPassReverse /  balancer://main/

v2.2.0更新:代码探索显示平衡器状态仅以结构形式存储在内存中ap_scoreboard,并在启动时重新初始化。我认为我看到的事情不可能发生。感谢@ShaneMadden 对 的见解v2.4

答案1

这个功能似乎有点混乱......这个想法似乎是用来mod_slotmem_shm持久平衡器配置,它有一个选项可以使其存储持久。

为此,目录.shm中的文件logs(位置似乎不可配置)是存储配置的位置,这似乎只发生在 2.4.2 及更高版本中。例如,该文件将slotmem-shm-<identifier>_balancername.shm根据定义为 的平衡器进行命名。<Proxy balancer://balancername>

但是,在我的测试中,.shm2.4.1 中根本没有创建该文件,并且在 2.4.2 和 2.4.3 中重新启动服务后该文件也不会保留。您能否说明导致保留的条件是什么 - 正在使用哪些模块、哪些配置等?.shm服务停止后文件是否保留?

看起来发生了变化今天承诺进行一些与持久性相关的日志记录。我尝试编译 trunk 以测试这是否有助于澄清正在发生的事情,但由于与 slotmem 相关的错误而无法编译(请自行想象)。

相关内容