Persistência de sessão refere-se ao direcionamento das solicitações de um cliente para o mesmo servidor web ou de aplicações de backend durante uma “sessão” ou pelo tempo necessário para concluir uma tarefa ou transação.

Sites com alto volume de tráfego precisam atender a centenas de milhares, ou até milhões, de usuários de forma rápida e confiável. As organizações de TI lidam com esses grandes volumes agrupando servidores no que costuma ser chamado de farm de servidores. Um balanceador de carga fica à frente do grupo de servidores e direciona o tráfego para servidores individuais de modo a maximizar a eficiência.

Se uma usuária navegar pelo seu site por cinco minutos, provavelmente obterá informações de vários servidores de back-end. Não acessar sempre o mesmo servidor pode causar problemas caso o navegador ou o servidor de back-end tente melhorar a experiência na web armazenando informações que permitam executar mais rapidamente a próxima ação da usuária. Nesse caso, é importante — para não dizer imprescindível — que todas as solicitações da usuária sejam enviadas ao mesmo servidor.

Para melhorar o desempenho, um servidor de backend pode armazenar em cache os dados solicitados por um usuário, além de pré-armazenar em cache outras informações que acredita que o usuário possa solicitar. Muitas vezes, o que parece ser uma única solicitação para o usuário, como o download de um documento grande, é, na verdade, dividido e transmitido entre o cliente e o servidor como várias transações de solicitação e resposta. A maneira mais eficiente de o usuário receber as informações solicitadas é acessar o servidor que já as armazenou em cache.

Em outros casos, um usuário pode realizar uma transação que exige várias etapas, como preencher um formulário, comprar um produto ou fazer upgrade da conta. À medida que o cliente e o servidor trocam dados, eles precisam armazenar informações sobre o estado da sessão (chamadas de contexto) para que a transação prossiga sem problemas. Nesse caso, a persistência de sessão facilita muito a conclusão bem-sucedida das transações.

Um balanceador de carga ou controlador de entrega de aplicações (ADC) fica à frente do grupo de servidores e implementa a lógica que vincula uma sessão de usuário a um servidor específico pelo tempo necessário.

Como o NGINX Plus pode ajudar?

NGINX Plus e NGINX são as melhores soluções de balanceamento de carga da categoria, usadas por sites de alto tráfego, como Dropbox, Netflix e Zynga. Mais de 350 milhões de sites em todo o mundo confiam no NGINX Plus e no NGINX Open Source para disponibilizar seu conteúdo com rapidez, confiabilidade e segurança.

Como balanceador de carga baseado em software, o NGINX Plus é consideravelmente mais econômico do que soluções de hardware com recursos semelhantes. O NGINX gerencia nativamente a persistência de sessão de várias maneiras, inclusive por meio de cookies e rotas persistentes.