A renderização angular do lado do servidor continua caindo para 502 erros

A renderização angular do lado do servidor continua caindo para 502 erros

Estou executando meu front-end no servidor há algumas semanas (renderização angular do lado do servidor). Continuo me deparando com esse problema em que o front-end apresenta um erro 502. Tenho que reiniciar o servidor a cada poucas horas para garantir que ele esteja funcionando novamente. O tráfego não está louco e tudo parece estar bem (nos logs do meu console - sem erros, etc.) até o ponto em que ele cai repentinamente. no momento em que reinicio o servidor ssr, ele funciona bem novamente. Eu uso a biblioteca universal que é o padrão para renderização do lado do servidor em Angular. Qual poderia ser o problema? o que preciso monitorar? BATER? CPU? Algo mais?

Responder1

HTTP 502 normalmente significa que um servidor (aquele que originou a resposta HTTP 502) tentou se comunicar com outro servidor e falhou.

Você mencionou que reiniciar o "primeiro" servidor (aquele que eventualmente distribuiu o 502) corrige o problema, o que provavelmente significa que há algum tipo de problema não persistente nesse servidor.

Razões possíveis:

  • esgotamento de memória: se o seu servidor front-end precisar gerar um novo processo ou thread para se comunicar com o back-end, talvez ele não consiga fazer isso.

Verifique a utilização de RAM (free -m, top) e os limites de RAM, tanto globais (/etc/security/limits.conf) quanto por processo (cat /proc/PID/limits, onde PID é o PID do seu processo).

  • número de conexões abertas: talvez seu front-end tenha muitas conexões abertas com o servidor back-end, o que significa que em algum momento ele não poderá abrir uma nova e reiniciar fechará essas conexões.

Execute ss -tlpnao | grep <backend server IP>(ou qualquer outra porta) e compare o número de conexões com os valores de sysctl net.ipv4.ip_local_port_rangee sysctl net.ipv4.tcp_fin_timeout.

Eu também executaria um tcpdump -nni any host <backend ip> -vpara verificar o que está acontecendo da perspectiva do pacote. Você recebe uma resposta? Se sim, que tipo de resposta? Ou o frontend simplesmente nunca recebe uma resposta do backend? Isso pode ajudá-lo a encontrar a causa raiz.

informação relacionada