Cookies não configurados em ambiente com balanceamento de carga

1

Eu tenho um balanceador de carga Nginx carregando dois servidores nginx servindo o conteúdo PHP (Moodle). Eles compartilham o mesmo banco de dados e usam o mesmo diretório de sessões usando um compartilhamento NFS em um servidor separado.

Estou executando o PHP 5.4.1 e a última versão do Moodle.

Neste momento, o balanceamento de carga funciona bem, e eu consigo acessar os dois nós de trabalho usando o proxy. No entanto, ao entrar no Moodle, recebo um erro dizendo que os cookies estão desativados. Obviamente, eles não estão, e o login em um dos nós de trabalho funciona bem. Ao acessar os nós individualmente, o cookie MoodleSession é definido, mas ao acessá-lo através do balanceador de carga, nenhum cookie é configurado.

Eu tentei alterar o modo de cookie para usar o banco de dados MySQL, mas isso também não funciona.

O que posso fazer com vários nós de trabalho para definir cookies que o servidor está armazenando em um diretório comum (NFS)?

    
por David 03.06.2014 / 18:07

1 resposta

2

Você pode encaminhar explicitamente o cabeçalho Set-Cookie com proxy_pass_header Set-Cookie .

Em geral, ao tentar determinar o impacto de um balanceador de carga, geralmente considero útil "balancear a carga" em um trabalhador, em vez de ignorar completamente o balanceador de carga, conectando-se diretamente ao trabalhador.

Somente quando o balanceador de carga funciona como esperado com um único trabalhador, como @ user1279647 mencionado, você pode determinar se precisa de sessões fixas ou não, testando com vários trabalhadores.

    
por 03.06.2014 / 18:41