Nginx upstream timed out (110: Connection timed out)

Привет, мой сайт — https://1o24bbs.com/

Без обновления и каких-либо действий внезапно Nginx начал выдавать ошибку: не удаётся подключиться к upstream: http://127.0.0.1:3000

Как мне это отладить? Буду благодарен за помощь.

/shared/log/rails# tail -f unicorn.stdout.log

2021-07-08T09:01:03.403Z pid=682 tid=sim ОШИБКА: Ошибка при получении задания: Ошибка подключения к Redis на localhost:6379 (Errno::EADDRNOTAVAIL)

2021-07-08T09:01:03.412Z pid=682 tid=t4m ОШИБКА: Ошибка при получении задания: Ошибка подключения к Redis на localhost:6379 (Errno::EADDRNOTAVAIL)

2021-07-08T09:01:03.406Z pid=682 tid=tra ОШИБКА: Ошибка при получении задания: Ошибка подключения к Redis на localhost:6379 (Errno::EADDRNOTAVAIL)

2021-07-08T09:01:03.407Z pid=682 tid=sn6 ОШИБКА: Ошибка при получении задания: Ошибка подключения к Redis на localhost:6379 (Errno::EADDRNOTAVAIL)

2021-07-08T09:01:03.407Z pid=682 tid=sze ОШИБКА: Ошибка при получении задания: Ошибка подключения к Redis на localhost:6379 (Errno::EADDRNOTAVAIL)

Загрузка Sidekiq в процессе с идентификатором 648

Собственный супервизор убийства отсутствует

Собственный супервизор убийства отсутствует

Собственный супервизор убийства отсутствует

Загрузка Sidekiq в процессе с идентификатором 780

/var/log/redis# tail -f current

553:M 08 Jul 2021 09:11:59.078 * 10000 изменений за 60 секунд. Сохранение…

553:M 08 Jul 2021 09:11:59.079 * Фоновое сохранение запущено процессом 1270

1270:C 08 Jul 2021 09:12:01.584 * База данных сохранена на диск

1270:C 08 Jul 2021 09:12:01.595 * RDB: 0 МБ памяти использовано механизмом copy-on-write

553:M 08 Jul 2021 09:12:01.619 * Фоновое сохранение завершено успешно

553:M 08 Jul 2021 09:13:02.098 * 10000 изменений за 60 секунд. Сохранение…

553:M 08 Jul 2021 09:13:02.099 * Фоновое сохранение запущено процессом 1339

1339:C 08 Jul 2021 09:13:04.052 * База данных сохранена на диск

1339:C 08 Jul 2021 09:13:04.055 * RDB: 0 МБ памяти использовано механизмом copy-on-write

553:M 08 Jul 2021 09:13:04.137 * Фоновое сохранение завершено успешно

При выполнении rebuild app произошла ошибка Failed listening on port 6379

Это официальная стандартная установка Discourse?

У вас достаточно места на диске (я полагаю, вы бы заметили это, если бы попытались пересобрать).

Похоже, проблема в Redis, хотя по предоставленной вами информации я не могу понять причину.

Да, сайт уже несколько лет работает без сбоев.

Я начинаю думать, что проблема, возможно, не в Redis.
Sidekiq — это же система для фоновых задач, верно?

Это не должно приводить к тому, что http://127.0.0.1:3000 станет недоступным.

Больше логов в nginx

2021/07/08 10:54:31 [error] 570#570: *169 upstream timed out (110: Connection timed out) while reading response header from upstream, client: 100.19.76.187, server: _, request: “POST /message-bus/4cf07f106ff14fd885fd735ea28abce4/poll?dlp=t HTTP/2.0”, upstream: “http://127.0.0.1:3000/message-bus/4cf07f106ff14fd885fd735ea28abce4/poll?dlp=t”, host: “1o24bbs.com”, referrer: “https://1o24bbs.com/t/icc/25834

2021/07/08 10:54:32 [error] 570#570: *169 upstream timed out (110: Connection timed out) while connecting to upstream, client: 100.19.76.187, server: _, request: “POST /message-bus/fe81f75495324a109de3812a3c5a9abd/poll?dlp=t HTTP/2.0”, upstream: “http://127.0.0.1:3000/message-bus/fe81f75495324a109de3812a3c5a9abd/poll?dlp=t”, host: “1o24bbs.com”, referrer: “https://1o24bbs.com/t/icc/23914

2021/07/08 10:54:33 [error] 570#570: *169 upstream timed out (110: Connection timed out) while reading response header from upstream, client: 100.19.76.187, server: _, request: “POST /message-bus/1dd105462c5b4b4c978e1702fa885e14/poll?dlp=t HTTP/2.0”, upstream: “http://127.0.0.1:3000/message-bus/1dd105462c5b4b4c978e1702fa885e14/poll?dlp=t”, host: “1o24bbs.com”, referrer: “https://1o24bbs.com/t/topic/15436

2021/07/08 10:54:36 [error] 570#570: *13261 upstream timed out (110: Connection timed out) while reading response header from upstream, client: 220.196.56.24, server: _, request: “GET /?374e828961d36d46bd99dc8e13b7f640 HTTP/1.1”, upstream: “http://127.0.0.1:3000/?374e828961d36d46bd99dc8e13b7f640”, host: “1o24bbs.com”, referrer: “https://gateway.zscalertwo.net:443/auT?origurl=https%3A%2F%2F1o24bbs.com%2F%3F374e828961d36d46bd99dc8e13b7f640&wexps=1&_ordtok=SWk3WVhmhHBPJ4rLFk4nDRnkZ3&wexps=1

В production.log я вижу

Обработка запроса контроллером CategoriesController#index в формате HTML
Параметры: {“41528430213d6ae753e074e11328b67b” => nil}
Исключение в задаче: FATAL: система баз данных завершает работу

@pfaffman Как очистить Redis? Спасибо!

Вы выполнили обновление PostgreSQL 13?

Спасибо!
Мой сайт работает на последней версии Discourse. Я использую последнюю версию уже как минимум месяц.

Я не обновлял PostgreSQL вручную, но, думаю, у меня версия 13.
Как мне это подтвердить?

$ psql -V
psql (PostgreSQL) 13.3 (Debian 13.3-1.pgdg100+1)

Кстати, я запускаю один контейнер app

У вас есть какие-либо нестандартные плагины?

Установленные плагины:

  • docker_manager
  • discourse-adplugin

Как вы думаете, проблема в Redis или PostgreSQL?

После выполнения # ./launcher enter app запрос curl http://127.0.0.1:3000 завершается по таймауту

Вывод discourse-doctor:

==================== ИНФОРМАЦИЯ О DOCKER ====================
ВЕРСИЯ DOCKER: Docker version 19.03.13, сборка 4484c46d9d

ПРОЦЕССЫ DOCKER (docker ps -a)

CONTAINER ID        IMAGE                              COMMAND                  СОЗДАН              СТАТУС                   ПОРТЫ                                      ИМЯ
70709beca56d        local_discourse/app                "/sbin/boot"             15 минут назад      Запущен 15 минут назад   0.0.0.0:80->80/tcp, 0.0.0.0:443->443/tcp   app
1828993cd957        discourse/base:2.0.20210528-1735   "/bin/bash -c 'cd /p…"   2 часа назад        Завершился (1) 2 часа назад                                              agitated_curie

70709beca56d        local_discourse/app   "/sbin/boot"        15 минут назад      Запущен 15 минут назад       0.0.0.0:80->80/tcp, 0.0.0.0:443->443/tcp   app

Контейнер Discourse app запущен


==================== ПЛАГИНЫ ====================
          - git clone https://github.com/discourse/docker_manager.git
          - git clone https://github.com/discourse/discourse-adplugin.git

Неофициальные плагины не обнаружены.

См. официальный список: https://github.com/discourse/discourse/blob/master/lib/plugin/metadata.rb

========================================

Извините. У меня нет идей. Вы недавно перезагружали?

Мне пришлось развернуть новую виртуальную машину и использовать резервную копию базы данных для создания нового контейнера.
Но похоже, что проблема возникла снова после этого…

Имел ту же проблему с корпоративным сайтом обмен валют, перевод денег онлайн. Попробовал перезагрузить сервер, увеличить таймаут до 1000 секунд и затем проверить.