1
resposta

Compartilhar Sessions entre containers

Estou desenvolvendo uma API que recebe uma autenticação via JWT, porém esse tipo de autenticação cria uma session dentro do servidor.

Estou querendo utilizar o NGINX para proxy e usar 2 containers com a imagem php:7.3-apache porém se algum usuário enviar uma requisição com a autenticação que foi feita no primeiro servidor quando for enviada outra requisição e o NGINX enviar para o acesso para o segundo servidor o mesmo não irá conseguir se autenticar por falta da session criada.

Existe uma forma de eu identificar as sessions criadas em ambos servidores (containers)?

1 resposta

Olá Samuel! Tudo bem com você?

Peço desculpas pela demora no retorno a sua mensagem.

Compartilhar sessions entre containers pode ser um desafio, mas existem algumas soluções possíveis para o seu caso. Uma opção é utilizar um mecanismo de armazenamento externo para as sessions, como um banco de dados ou um serviço de cache. Dessa forma, ambos os containers poderão acessar as sessions armazenadas externamente.

Por exemplo, você pode usar o Redis como um serviço de cache para armazenar as sessions. Ambos os containers podem se conectar ao Redis e compartilhar as sessions através dele. Assim, quando um usuário fizer uma requisição para o segundo servidor, ele poderá acessar a session criada no primeiro servidor.

Outra opção é utilizar um serviço de armazenamento compartilhado, como o Amazon Elastic File System (EFS), para compartilhar o diretório onde as sessions são armazenadas. Dessa forma, ambos os containers terão acesso ao mesmo diretório e poderão compartilhar as sessions.

É importante lembrar que a escolha da solução depende das necessidades específicas do seu projeto e da infraestrutura que você está utilizando. Recomendo que você avalie as opções disponíveis e escolha aquela que melhor se adequa ao seu caso.

Espero ter ajudado e bons estudos!