Angular server side rendering keeps going down to 502 errors

Вот уже несколько недель я запускаю свой front end на сервере (angular Server Side rendering). Я постоянно сталкиваюсь с проблемой, когда фронт-энд падает до ошибки 502. Мне приходится перезапускать сервер каждые несколько часов, чтобы убедиться, что он снова работает. Трафик не сумасшедший, и все кажется в порядке (в моих консольных журналах - никаких ошибок и т.д.) до момента, когда он внезапно падает. Как только я перезапускаю сервер ssr, он снова работает нормально. Я использую универсальную библиотеку, которая является стандартом для рендеринга на стороне сервера в Angular. В чем может быть проблема? Что мне нужно контролировать? ОЗУ? ПРОЦЕССОР? Что-то еще?

1
задан 29 July 2021 в 07:38
1 ответ

HTTP 502 обычно означает, что один сервер (тот, который инициировал ответ HTTP 502) пытался связаться с другим сервером и потерпел неудачу.

Вы упомянули, что перезагрузка «первого» сервера (того, который в конечном итоге раздал 502) решает проблему, что, вероятно, означает, что на этом сервере есть какая-то непостоянная проблема.

Возможные причины:

  • исчерпание памяти: если ваш интерфейсный сервер должен создать новый процесс или поток для связи с серверной частью, он может быть не в состоянии это сделать.

Проверьте использование ОЗУ (free -m, top) и лимиты ОЗУ, как глобальные (/etc/security/limits.conf), так и для каждого процесса (cat /proc/PID/limits, где PID — это PID вашего процесса) .

  • количество открытых подключений: возможно, ваш интерфейс имеет много открытых подключений к внутреннему серверу, что означает, что в какой-то момент он не может открыть новое, и перезапуск закрывает эти подключения.

Выполнить ss ​​-tlpnao | grep (или любой другой порт) и сравните количество подключений со значениями sysctl net.ipv4.ip_local_port_range и sysctl net.ipv4.tcp_fin_timeout .

Я бы также запустил tcpdump -nni any host -v, чтобы проверить, что происходит с точки зрения пакетов. Вы получаете ответ? Если да, то какой ответ? Или интерфейс просто никогда не получает ответа от сервера? Это может помочь вам найти основную причину.

0
ответ дан 29 July 2021 в 08:22

Теги

Похожие вопросы