Gerenciamento de sessão HTTP ao usar o Nginx como no modo "Round Robin" Load-balancer?

1

Estou tentando balancear a carga "2 Servidores Web (executando Apache / PHP)" colocando nginx na frente deles. Mas eu preciso usar o algoritmo Round Robin , mas quando faço isso, não consigo ter as SESSIONS estáveis .

(Eu entendo; se eu usar Round Robin, as informações da sessão serão perdidas quando eu clicar no outro servidor no próximo carregamento)

Existe uma maneira correta de conseguir isso? Algum conselho gentil para os padrões industriais sobre isso, por favor?

FYI, eu já coloquei esses dois servidores Web em GlusterFS como no Cluster. Então eu tenho um armazenamento comum (se você vai sugerir algo baseado nisso)

    
por 夏期劇場 01.02.2016 / 09:19

1 resposta

4

Embora este seja um post antigo, ele ainda tem alta classificação de SEO, tentando responder.

Embora você possa tirar proveito do armazenamento em cluster, você deve sempre lidar com a persistência da sessão em um único segmento de memória.

Para sua situação, a maneira mais fácil pode estar usando uma das maneiras possíveis do NGINX de manter o servidor upstream de destino persistente. O mais fácil ainda pode ser a diretiva ip_hash , pois pode atender às suas necessidades.

Para as necessidades de negócios, recomendo encomendar uma assinatura comercial e usar uma diretiva adesiva, e também aproveitar outras vantagens, incluindo suporte extensivo.

Outra opção é usar algum plugin de terceiros (código aberto) (por exemplo, nginx-sticky -module-ng ) para criar a mesma funcionalidade sem necessidade de pagar a assinatura.

    
por 26.01.2017 / 12:19