Рейтинг:1

Рендеринг на стороне сервера Angular продолжает снижаться до 502 ошибок

флаг br

Итак, я уже несколько недель запускаю свой интерфейс на сервере (угловой рендеринг на стороне сервера). Я продолжаю сталкиваться с этой проблемой, когда интерфейс переходит к ошибке 502.Мне приходится перезапускать сервер каждые несколько часов, чтобы обеспечить его резервное копирование. Трафик не сумасшедший, и все, кажется, в порядке (в журналах моей консоли - никаких ошибок и т. д.), пока он внезапно не падает. в тот момент, когда я перезапускаю сервер ssr, он снова работает нормально. Я использую универсальную библиотеку, которая является стандартом для рендеринга на стороне сервера в Angular. В чем может быть проблема? что мне нужно мониторить? БАРАН? ЦПУ? Что-то другое?

A. Darwin avatar
флаг my
Ваш сервер разговаривает с другим сервером? Есть ли между ними балансировщик нагрузки?
флаг br
да, он общается с другим сервером, мой интерфейс и сервер размещены отдельно. Балансировщик нагрузки я не ставил. В настоящее время практически нет взаимодействия между двумя серверами (вероятно, 1000 запросов в день). Это требуется?
A. Darwin avatar
флаг my
балансировщик нагрузки может потребоваться, а может и не потребоваться, но я не об этом.Дело в том, что HTTP 502 обычно возникает, когда один сервер (тот, который в конечном итоге отвечает 502) должен общаться с другим сервером и по какой-то причине дает сбой. Вот почему я спросил.
Michael Hampton avatar
флаг cz
Проверьте журналы на предмет того, какой бит вашего стека возвращает ошибку 502.
Рейтинг:0
флаг my

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

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

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

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

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

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

Бег сс-тлпнао | grep <IP-адрес внутреннего сервера> (или любой другой порт) и сравните количество подключений со значениями sysctl net.ipv4.ip_local_port_range и sysctl net.ipv4.tcp_fin_timeout .

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

Ответить или комментировать

Большинство людей не понимают, что склонность к познанию нового открывает путь к обучению и улучшает межличностные связи. В исследованиях Элисон, например, хотя люди могли точно вспомнить, сколько вопросов было задано в их разговорах, они не чувствовали интуитивно связи между вопросами и симпатиями. В четырех исследованиях, в которых участники сами участвовали в разговорах или читали стенограммы чужих разговоров, люди, как правило, не осознавали, что задаваемый вопрос повлияет — или повлиял — на уровень дружбы между собеседниками.