![Verificações de integridade do balanceador de carga DigitalOcean inundando minhas sessões do CodeIgniter](https://rvso.com/image/726398/Verifica%C3%A7%C3%B5es%20de%20integridade%20do%20balanceador%20de%20carga%20DigitalOcean%20inundando%20minhas%20sess%C3%B5es%20do%20CodeIgniter.png)
Estou tentando descobrir isso há algum tempo, mas até agora sem sucesso. Depois de entrar em contato com o suporte da DigitalOcean algumas vezes, estou ainda mais perdido.
Eu tenho a seguinte configuração: o domínio aponta para um balanceador de carga DO que está na frente de dois droplets de aplicativo que hospedam meu aplicativo criado no codeigniter. Uma terceira gota contém meu servidor de banco de dados. servidores de aplicativos são PHP7 com php+fpm
Como os droplets do aplicativo têm balanceamento de carga, eu cuido das sessões no banco de dados, o que funciona bem do ponto de vista do usuário.
As verificações de integridade do LB são configuradas para serem executadas a cada 10 segundos em HTTP e o destino é uma página gerada pelo codeigniter.
Resumo até agora: como as verificações de integridade são direcionadas a cada 10 segundos (6 por minuto) para 2 gotículas, eu esperaria 12 verificações de integridade por minuto no total. Dado que o DO tem failover automático silenciosamente, podemos assumir que esse número seria de fato 24 verificações por minuto (se eles também enviassem verificações do LB de failover), ou seja, 1.440 por hora. As verificações "duplas" são na verdade uma realidade, já que minha tabela de sessões possui uma quantidade igual de tráfego de dois IPs distintos e consecutivos no intervalo privado.
O problema: na verdade, estou vendo exatamente 4 vezes a quantidade de sessões que esperaria dos balanceadores de carga (em vez de aproximadamente 1.440 por hora, estou vendo números consistentes de aproximadamente 5.760 sessões por hora). A DigitalOcean não conseguiu descobrir.
A quantidade de sessões não é um problema real, pois tenho uma coleta de lixo (por falta de um nome melhor) que limpa sessões vazias várias vezes ao dia para manter a tabela pequena, mas estou confuso com isso. Eu sei que poderia espaçar um pouco as verificações de integridade ou apontar as verificações para um URL que não inicia a biblioteca do manipulador de sessão, mas ambas as mitigações anulam o propósito.
Alguém já viu comportamento como esse? Alguma ideia? Estou perseguindo isso há cerca de um mês.
Responder1
Sem conhecimento detalhado do funcionamento interno do balanceador de carga:
Suspeito que as verificações de integridade sejam executadas em nome de cada ponto de entrada, cada serviço definido no balanceador de carga.
Se você tiver um ponto de entrada HTTP e HTTPS que vão para o mesmo back-end, isso resultará em duas verificações de integridade individuais, dobrando o número de solicitações que você vê.