我在Ubuntu上运行apache2作为一组应用程序服务器前面的caching负载平衡反向代理。 我已经注意到,平衡器为/balancer-manager可见的某些属性维护一些状态,例如IP是否启用/禁用,加载因子等。
我的网站使用时间很长(和较低),最近当我向工作组添加一个新的服务器时,我注意到负载平衡器拿起了新的服务器,但设置为“ Disabled 。 我很好奇数据存储在哪里,以及/或者它是如何初始化的。
平衡器configuration(名称更改为保护无辜:
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/
更新:代码spelunking显示存储在内存中的平衡器状态仅在v2.2.0作为结构ap_scoreboard并在启动时重新初始化。 我想我所看到的事情是没有办法的。 感谢@ShaneMadden对v2.4的深入了解。
这个function似乎有点混乱..这个想法似乎是使用mod_slotmem_shm来坚持平衡器configuration,它有一个选项,使其存储持久。
为此, logs目录中的.shm文件(位置似乎不可configuration)是存储configuration的位置,这似乎只发生在2.4.2及更高版本上。 例如,对于定义为<Proxy balancer://balancername> ,该文件将被命名为slotmem-shm-<identifier>_balancername.shm 。
但是,在我的testing中, .shm文件在2.4.1中完全没有创build,并且在2.4.2和2.4.3的服务重启中不会持续。 你能澄清你有什么条件导致持久性 – 什么模块正在使用,什么configuration等? 服务停止时, .shm文件是否保留?
看起来像今天做了一个变化,做一些关于持久性的日志。 我试图编译trunk来testing这是否有助于澄清正在发生的事情,并且由于与slotmem有关的错误而无法编译(转到图)。