Angular 伺服器端渲染錯誤持續下降至 502

Angular 伺服器端渲染錯誤持續下降至 502

所以我已經在伺服器上運行我的前端幾週了(角度伺服器端渲染)。我一直遇到這個問題,前端出現 502 錯誤。我必須每隔幾個小時重新啟動伺服器以確保其備份。流量並不瘋狂,一切似乎都很好(在我的控制台日誌中 - 沒有錯誤等),直到它突然下降。當我重新啟動 ssr 伺服器時,它再次正常工作。我使用通用庫,它是 Angular 中伺服器端渲染的標準。可能是什麼問題?我需要監控什麼?記憶體?中央處理器?還有別的事嗎?

答案1

HTTP 502 通常表示一台伺服器(發起 HTTP 502 回應的伺服器)嘗試與另一台伺服器通訊但失敗。

您提到重新啟動「第一台」伺服器(最終發出 502 的伺服器)可以解決該問題,這可能意味著該伺服器上存在某種非持久性問題。

可能的原因:

  • 記憶體耗盡:如果您的前端伺服器必須產生一個新進程或執行緒來與後端通信,它可能無法執行此操作。

檢查 RAM 利用率(free -m,top)和 RAM 限制,全域(/etc/security/limits.conf)和每個進程(cat /proc/PID/limits,其中 PID 是進程的 PID)。

  • 打開連接的數量:也許您的前端與後端伺服器有很多打開的連接,這意味著在某些時候它無法打開新連接,並且重新啟動會關閉這些連接。

運行ss -tlpnao | grep <backend server IP>(或任何其他連接埠)並將連接數與sysctl net.ipv4.ip_local_port_range和的值進行比較sysctl net.ipv4.tcp_fin_timeout

我還會運行 atcpdump -nni any host <backend ip> -v從資料包的角度檢查發生了什麼。你收到回覆了嗎?如果是的話,什麼樣的回覆?還是前端根本沒有得到後端的回覆?這可能會幫助您找到根本原因。

相關內容