Persistência de sessão refere-se ao direcionamento de solicitações de um cliente para o mesmo servidor web ou de aplicativo de backend durante uma “sessão” ou o tempo que leva para concluir uma tarefa ou transação.
Sites de alto tráfego devem oferecer suporte a centenas de milhares, se não milhões, de usuários de maneira rápida e confiável. As organizações de TI dão suporte a esses grandes volumes agrupando servidores no que geralmente é chamado de farm de servidores . Um balanceador de carga fica na frente do grupo de servidores e direciona o tráfego para servidores individuais de uma forma que maximiza a eficiência.
Se um usuário navega em seu site por cinco minutos, ele provavelmente busca informações de vários servidores de back-end. Não acessar o mesmo servidor todas as vezes pode causar problemas se o navegador da web ou o servidor de backend tentar melhorar a experiência na web armazenando informações que permitem que a próxima ação do usuário ocorra mais rapidamente. Neste caso, é importante – para não dizer imperativo – que todas as solicitações do usuário sejam enviadas para o mesmo servidor.
Para aumentar o desempenho, um servidor de backend pode armazenar em cache dados solicitados por um usuário, bem como pré-armazenar em cache informações adicionais que ele acredita que um usuário pode solicitar. Muitas vezes, o que parece para o usuário uma única solicitação, como baixar um documento grande, na verdade é dividido e transmitido entre o cliente e o servidor como múltiplas transações de solicitação-resposta. A maneira mais eficiente para 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 atualizar sua conta. À medida que o cliente e o servidor trocam dados, eles precisam armazenar informações de estado sobre a sessão (chamadas de contexto ) para que a transação prossiga sem problemas. Nesse caso, a persistência da sessão torna muito mais fácil que as transações sejam concluídas com sucesso.
Um balanceador de carga ou controlador de entrega de aplicativos (ADC) fica na 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 que for necessário.
NGINX Plus e NGINX são as melhores soluções de balanceamento de carga usadas por sites de alto tráfego, como Dropbox, Netflix e Zynga. Mais de 350 milhões de sites no mundo todo contam com o NGINX Plus e o NGINX Open Source para entregar seu conteúdo de forma rápida, confiável e segura.
Como um balanceador de carga baseado em software, o NGINX Plus é consideravelmente mais barato do que soluções de hardware com recursos semelhantes. O NGINX gerencia nativamente a persistência da sessão de diversas maneiras, incluindo o uso de cookies e rotas persistentes.