我apache2
在 Ubuntu 上运行缓存负载平衡反向代理,位于一组应用服务器的前面。我注意到平衡器会维护一些可见属性的状态,例如/balancer-manager
IP 是否启用/禁用、负载因子等。
我的网站有使用率高(和低)的时期,最近当我向工作组添加新服务器时,我注意到负载平衡器选择了新服务器,但将其设置为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>
但是,在我的测试中,.shm
2.4.1 中根本没有创建该文件,并且在 2.4.2 和 2.4.3 中重新启动服务后该文件也不会保留。您能否说明导致保留的条件是什么 - 正在使用哪些模块、哪些配置等?.shm
服务停止后文件是否保留?
看起来发生了变化今天承诺进行一些与持久性相关的日志记录。我尝试编译 trunk 以测试这是否有助于澄清正在发生的事情,但由于与 slotmem 相关的错误而无法编译(请自行想象)。