Sessões PHP compartilhadas no ambiente httpd com balanceamento de carga

1

Eu tenho dois servidores httpd executando PHP no RHEL 5.7. Inicialmente eu estava compartilhando sessões PHP entre os servidores usando um compartilhamento NFS comum que estava hospedado em um terceiro servidor. Isso estava causando lentidão e, por fim, interrompia os servidores httpd.

Qual é a melhor prática para compartilhar dados da sessão PHP entre vários servidores front-end httpd?

O fornecedor está recomendando que eu aproveite a persistência da conexão de balanceamento de carga por meio de um cookie ou IP de origem, mas estou preocupado que uma falha em um dos servidores httpd faça com que os usuários percam seus dados da sessão e sejam desconectados (por exemplo) .

Pensamentos?

Obrigado!

    
por Robin 17.04.2012 / 16:25

3 respostas

3

Coloque suas sessões em seu banco de dados (provavelmente replicado) ou use servidores replicados memcached para seu sessões.

    
por 17.04.2012 / 16:37
0

Este é um desvio do que uso para vários clientes:

Atualmente é baseado em ZF, mas pode ser facilmente estendido para funcionar com outras estruturas. A ideia é usar o Memcache e o MySQL como backup. Uma vez que usa ext/memcache (muitas pessoas sugerem ficar com 2.x-stable) eu posso adicionar vários servidores com a extensão replica dados através deles.

Não tem 100% de certeza se essa é a melhor ideia, você também pode adiar o mesmo no código do usuário.

    
por 17.04.2012 / 18:28
0

Uma opção leve para testar é Scache . Mas leia a introdução, há problemas de bloqueio ao usar o $ _SESSION no ambiente de vários servidores.

    
por 18.04.2012 / 16:13