Angular 서버 측 렌더링이 계속 502 오류로 진행됩니다.

Angular 서버 측 렌더링이 계속 502 오류로 진행됩니다.

그래서 저는 몇 주 동안 서버에서 프런트 엔드를 실행해 왔습니다(Angular Server Side 렌더링). 프런트 엔드에서 502 오류가 발생하는 이 문제가 계속 발생합니다. 서버가 백업되었는지 확인하려면 몇 시간마다 서버를 다시 시작해야 합니다. 트래픽이 심하지 않고 갑자기 다운될 때까지 모든 것이 괜찮은 것 같습니다(내 콘솔 로그에는 오류가 없습니다). ssr 서버를 다시 시작하는 순간 다시 잘 작동합니다. 저는 Angular의 서버사이드 렌더링 표준인 범용 라이브러리를 사용합니다. 무엇이 문제일까요? 무엇을 모니터링해야 합니까? 램? CPU? 다른 것?

답변1

HTTP 502는 일반적으로 한 서버(HTTP 502 응답을 보낸 서버)가 다른 서버와 통신을 시도했지만 실패했음을 의미합니다.

"첫 번째" 서버(결국 502를 전달하는 서버)를 재부팅하면 문제가 해결된다고 언급했는데, 이는 아마도 해당 서버에 일종의 비지속적인 문제가 있음을 의미할 것입니다.

가능한 이유:

  • 메모리 고갈: 프런트엔드 서버가 백엔드와 통신하기 위해 새 프로세스나 스레드를 생성해야 하는 경우 이를 수행하지 못할 수 있습니다.

전역(/etc/security/limits.conf) 및 프로세스당(cat /proc/PID/limits, 여기서 PID는 프로세스의 PID임) RAM 사용률(free -m, top)과 RAM 제한을 확인하세요.

  • 열린 연결 수: 프런트엔드에 백엔드 서버에 대한 열린 연결이 많을 수 있습니다. 이는 어느 시점에서 새 연결을 열 수 없으며 다시 시작하면 해당 연결이 닫히는 것을 의미합니다.

(또는 다른 포트)을 실행 하고 연결 수를 및 ss -tlpnao | grep <backend server IP>값과 비교합니다 .sysctl net.ipv4.ip_local_port_rangesysctl net.ipv4.tcp_fin_timeout

tcpdump -nni any host <backend ip> -v또한 패킷 관점에서 무슨 일이 일어나고 있는지 확인하기 위해 a를 실행합니다 . 답장이 오나요? 그렇다면 어떤 대답이 있을까요? 아니면 프런트엔드가 백엔드로부터 응답을 전혀 받지 못하는 걸까요? 근본 원인을 찾는 데 도움이 될 수 있습니다.

관련 정보