# Как отследить сбой upstream-дискурса внутри контейнера, приводящий к ошибке 502 Bad Gateway

**URL:** https://meta.discourse.org/t/how-to-track-down-failure-of-discourse-upstream-inside-container-resulting-in-502-bad-gateway/256099
**Category:** Self-hosting
**Created:** [23.Февраль.2023 18:54:30 UTC](https://meta.discourse.org/t/how-to-track-down-failure-of-discourse-upstream-inside-container-resulting-in-502-bad-gateway/256099 "2023-02-23T18:54:30Z")
**Posts on this page:** 9
**Page:** 1

<div class="post-metadata">

### Author: ![Godmar\_Back](https://sea3.discourse-cdn.com/meta/user_avatar/meta.discourse.org/godmar_back/32/206246_2.png) [@Godmar\_Back](https://meta.discourse.org/u/Godmar_Back)
#### Post date: [23.Февраль.2023 18:54:30 UTC](https://meta.discourse.org/t/how-to-track-down-failure-of-discourse-upstream-inside-container-resulting-in-502-bad-gateway/256099/1 "2023-02-23T18:54:30Z")

</div>

(Да, я сначала поискал)

После недавнего использования интерфейса обновления администратора мой экземпляр Discourse перестал работать и возвращает ошибку 502 Bad Gateway.

Я зашел в контейнер, и, похоже, там запущен nginx, который ожидает сервер на localhost:3000, который не запущен.

```plaintext
(54) Ожидание запуска новых воркеров unicorn под PID 3802725...
(54) Ожидание запуска новых воркеров unicorn под PID 3802725...
(54) Старый PID: 3800363, новый PID: 3802725
config/unicorn_launcher: строка 71: kill: (3802725) - процесс не найден
config/unicorn_launcher: строка 15: kill: (3802725) - процесс не найден
(54) завершение работы
ok: run: redis: (pid 62) 3418739s
ok: run: postgres: (pid 53) 3418739s
supervisor pid: 3803896 unicorn pid: 3803900
config/unicorn_launcher: строка 71: kill: (3803900) - процесс не найден
config/unicorn_launcher: строка 15: kill: (3803900) - процесс не найден
(3803896) завершение работы

```

Это повторяется многократно:

```plaintext
ok: run: redis: (pid 64) 4905s
ok: run: postgres: (pid 65) 4905s
supervisor pid: 18571 unicorn pid: 18575
config/unicorn_launcher: строка 71: kill: (18575) - процесс не найден
config/unicorn_launcher: строка 15: kill: (18575) - процесс не найден
(18571) завершение работы

```

Я хотел бы создать эту тему для помощи в отладке: какой следующий шаг? Какую команду пытается запустить Discourse? (Я знаю, что мог бы выяснить это, прочитав или проанализировав код, но, возможно, будет полезно иметь тему об этом на форуме.)

Буду признателен за любые подсказки.

---

<div class="post-metadata">

### Author: ![merefield](https://sea3.discourse-cdn.com/meta/user_avatar/meta.discourse.org/merefield/32/176214_2.png) [@merefield](https://meta.discourse.org/u/merefield)
#### Post date: [23.Февраль.2023 19:06:13 UTC](https://meta.discourse.org/t/how-to-track-down-failure-of-discourse-upstream-inside-container-resulting-in-502-bad-gateway/256099/2 "2023-02-23T19:06:13Z")

</div>

Начните с поиска 😉

Это похоже?

> [@502 Bad Gateway after upgrade to 2.7.0beta2](https://meta.discourse.org/t/solved-502-bad-gateway-after-upgrade-to-2-7-0beta2/177030?u=merefield):
>
> Updated from cli: cd /var/discourse git pull ./launcher rebuild app Everything went ok but I got 502 Bad Gateway error. docker ps CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES 6598e9407e29 local\_discourse/app "/sbin/boot" 35 minutes ago Up 22 minutes 0.0.0.0:2045-\>80/tcp app ./launcher logs app (105) exiting ok: run: redis: (pid 47) 17s ok: run: postgres: (pid 44) 17s supervisor pid: 114 unicorn pid: 118 confi…

Вы используете абсолютно стандартную установку без модификаций?

---

<div class="post-metadata">

### Author: ![david](https://sea3.discourse-cdn.com/meta/user_avatar/meta.discourse.org/david/32/157490_2.png) [@david](https://meta.discourse.org/u/david)
#### Post date: [23.Февраль.2023 19:22:03 UTC](https://meta.discourse.org/t/how-to-track-down-failure-of-discourse-upstream-inside-container-resulting-in-502-bad-gateway/256099/3 "2023-02-23T19:22:03Z")

</div>

Учитывая время, это, скорее всего, связано с изменением в [Data Explorer](https://meta.discourse.org/t/32566?silent=true), которое вызвало некоторые проблемы. Мы откатили его, поэтому, если вы попробуете выполнить сборку снова, она должна работать лучше.

> [@Data explorer taking instance down on rebuild](https://meta.discourse.org/t/data-explorer-taking-instance-down-on-rebuild/256078/15?u=david):
>
> I see that has been reverted: I’ve been able to successfully rebuild now - thank you for getting onto that so promptly!

---

<div class="post-metadata">

### Author: ![Godmar\_Back](https://sea3.discourse-cdn.com/meta/user_avatar/meta.discourse.org/godmar_back/32/206246_2.png) [@Godmar\_Back](https://meta.discourse.org/u/Godmar_Back)
#### Post date: [23.Февраль.2023 20:53:47 UTC](https://meta.discourse.org/t/how-to-track-down-failure-of-discourse-upstream-inside-container-resulting-in-502-bad-gateway/256099/4 "2023-02-23T20:53:47Z")

</div>

Да, я использую [Data Explorer](https://meta.discourse.org/t/32566?silent=true). Перед перезапуском я не выполнял `git pull`.  
Когда я делаю `git pull`, а затем `./launcher restart app`, проблема не устраняется.

> [@merefield](#):
>
> Вы используете абсолютно чистую [стандартную установку](https://meta.discourse.org/t/142537)?

За исключением того, что я запускаю её через nginx на хосте.  
(Также у меня есть несколько плагинов, например, [Data Explorer](https://meta.discourse.org/t/32566?silent=true).)

Сейчас я пробую `./launcher rebuild app` — надеюсь, что пересборка приложения сохранит базу данных моего форума… и я не получу сброшенный форум.  
Выполнение `launcher rebuild app` не решает проблему.

> [@merefield](#):
>
> Это похоже?

Этот пост описывает проблему с привилегированными и непривилегированными контейнерами, но не предоставляет дополнительной информации. Кроме того, он опубликован 2 года назад, поэтому может не иметь отношения к недавнему обновлению.

---

<div class="post-metadata">

### Author: ![merefield](https://sea3.discourse-cdn.com/meta/user_avatar/meta.discourse.org/merefield/32/176214_2.png) [@merefield](https://meta.discourse.org/u/merefield)
#### Post date: [23.Февраль.2023 20:57:09 UTC](https://meta.discourse.org/t/how-to-track-down-failure-of-discourse-upstream-inside-container-resulting-in-502-bad-gateway/256099/5 "2023-02-23T20:57:09Z")

</div>

> [@Godmar Back](#):
>
> Я сейчас пытаюсь выполнить `./launcher rebuild app` — надеюсь, что пересборка приложения сохранит базу данных моего форума… и я не получу сброс форума.

Конечно, база данных находится на подключённой общей папке, поэтому она сохраняется.

Перезапуск контейнера после `git pull`, скорее всего, будет недостаточным.

---

<div class="post-metadata">

### Author: ![Godmar\_Back](https://sea3.discourse-cdn.com/meta/user_avatar/meta.discourse.org/godmar_back/32/206246_2.png) [@Godmar\_Back](https://meta.discourse.org/u/Godmar_Back)
#### Post date: [23.Февраль.2023 20:58:35 UTC](https://meta.discourse.org/t/how-to-track-down-failure-of-discourse-upstream-inside-container-resulting-in-502-bad-gateway/256099/6 "2023-02-23T20:58:35Z")

</div>

> [@Роберт](#):
>
> Перезапуск контейнера после git pull, скорее всего, будет недостаточным.

Понял. Я также выполнил `./launcher rebuild app` — разве это не должно обновить плагины?

---

<div class="post-metadata">

### Author: ![merefield](https://sea3.discourse-cdn.com/meta/user_avatar/meta.discourse.org/merefield/32/176214_2.png) [@merefield](https://meta.discourse.org/u/merefield)
#### Post date: [23.Февраль.2023 20:59:00 UTC](https://meta.discourse.org/t/how-to-track-down-failure-of-discourse-upstream-inside-container-resulting-in-502-bad-gateway/256099/7 "2023-02-23T20:59:00Z")

</div>

Да, это обновит и плагины (при условии, что они клонированы в `app.yml`)

---

<div class="post-metadata">

### Author: ![DonH](https://sea3.discourse-cdn.com/meta/user_avatar/meta.discourse.org/donh/32/274040_2.png) [@DonH](https://meta.discourse.org/u/DonH)
#### Post date: [23.Апрель.2023 18:59:33 UTC](https://meta.discourse.org/t/how-to-track-down-failure-of-discourse-upstream-inside-container-resulting-in-502-bad-gateway/256099/8 "2023-04-23T18:59:33Z")

</div>

На случай, если это всё ещё расследуется: у меня возникла ошибка 502 Gateway, но не сразу после процедуры обновления, которая прервалась на середине с ошибкой версионирования Ruby. Так как я не обновлял сервер примерно шесть недель, я выполнил apt update/upgrade и перезагрузил систему. Именно тогда произошла ошибка 502 — я не мог открыть сайт форума. Пересборка приложения исправила ситуацию и полностью обновила Discourse.

Для справки, у меня установлены и включены следующие плагины:

discourse-bbcode  
discourse-data-explorer  
discourse-docs  
docker\_manager  
styleguide

а также установлены, но отключены:

discourse-topic-list-previews  
discpage

---

<div class="post-metadata">

### Author: ![JammyDodger](https://sea3.discourse-cdn.com/meta/user_avatar/meta.discourse.org/jammydodger/32/254611_2.png) [@JammyDodger](https://meta.discourse.org/u/JammyDodger)
#### Post date: [23.Январь.2024 21:03:57 UTC](https://meta.discourse.org/t/how-to-track-down-failure-of-discourse-upstream-inside-container-resulting-in-502-bad-gateway/256099/9 "2024-01-23T21:03:57Z")

</div>

4 сообщения были перенесены в новую тему: [Есть ли пошаговая диагностика, когда сайт Discourse возвращает ошибку 502 Bad Gateway?](https://meta.discourse.org/t/is-there-a-step-by-step-diagnostic-for-when-a-discourse-site-is-found-in-a-502-bad-gateway/292671)
