Onde o estado de inicialização do armazenamento do apache para mod_proxy_balancer

2

Eu corro apache2 no Ubuntu como um proxy reverso de balanceamento de carga em cache na frente de um grupo de servidores de aplicativos. Tenho notado que o balanceador mantém algum estado para alguns dos atributos visíveis em /balancer-manager , como se um IP está ativado / desativado, um fator de carga, etc.

Meu site tem períodos de alta (e baixa) utilização e, recentemente, quando adicionei um novo servidor ao grupo de trabalho, notei que o balanceador de carga pegou o novo servidor, mas definiu como Disabled . Estou curioso para saber onde esses dados são armazenados e / ou como eles são inicializados.

Configuração do balanceador (nomes alterados para proteger os inocentes:

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/

UPDATE: o spelunking de código mostra o status do balanceador armazenado na memória apenas em v2.2.0 como a estrutura ap_scoreboard e reinicializado na inicialização. Não tem como a coisa que eu acho que estou vendo está acontecendo. Parabéns ao @ShaneMadden pelos insights sobre v2.4 .

    
por khoxsey 17.09.2012 / 21:59

1 resposta

1

Esse recurso parece estar um pouco bagunçado ... a ideia parece ser usar mod_slotmem_shm para persistir as configurações do balanceador, que tem uma opção para tornar seu armazenamento persistente.

Para esse fim, os arquivos .shm no diretório logs (a localização parece não ser configurável) são onde as configurações são armazenadas, o que parece acontecer apenas no 2.4.2 e posterior. O arquivo será nomeado slotmem-shm-<identifier>_balancername.shm para um balanceador definido como <Proxy balancer://balancername> , por exemplo.

No entanto, nos meus testes, o arquivo .shm não é criado de forma alguma em 2.4.1 e não persiste durante a reinicialização do serviço em 2.4.2 e 2.4.3. Você pode esclarecer quais condições você está causando a persistência - quais módulos estão em uso, quais configurações, etc? Os arquivos .shm estão sendo mantidos quando o serviço é interrompido?

Parece que uma alteração foi cometido hoje para fazer alguns registros relacionados à persistência. Eu tentei compilar o trunk para testar se isso ajudaria a esclarecer o que está acontecendo, e não poderia compilar devido a erros relacionados ao slotmem (veja figura).

    
por 18.09.2012 / 03:45

Tags