Здравствуйте,
У меня та же проблема с nginx и Discourse. Вместо Discourse всегда открывается страница «Добро пожаловать в nginx».
Настройка DNS и почтового сервера выполнена, хостинг размещён локально (on-prem), а не в облаке.
Я использовал эту инструкцию: discourse/docs/INSTALL-cloud.md at main · discourse/discourse · GitHub
Свежая установка на Ubuntu:
Distributor ID: Ubuntu
Description: Ubuntu 19.10
Release: 19.10
Codename: eoan
lsof -i:80
COMMAND PID USER FD TYPE DEVICE SIZE/OFF NODE NAME
docker-pr 23296 root 4u IPv6 62651 0t0 TCP *:http (LISTEN)
netstat -plnt
Active Internet connections (only servers)
Proto Recv-Q Send-Q Local Address Foreign Address State PID/Program name
tcp 0 0 127.0.0.53:53 0.0.0.0:* LISTEN 819/systemd-resolve
tcp 0 0 0.0.0.0:22 0.0.0.0:* LISTEN 906/sshd
tcp6 0 0 :::80 :::* LISTEN 23296/docker-proxy
tcp6 0 0 :::22 :::* LISTEN 906/sshd
tcp6 0 0 :::443 :::* LISTEN 23283/docker-proxy
docker ps
CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES
01b8b484088b local_discourse/app "/sbin/boot" 12 hours ago Up 12 hours 0.0.0.0:80->80/tcp, 0.0.0.0:443->443/tcp app
Я также пробовал Debian 9 и 10.
Также попробую Ubuntu 18.04 LTS и запишу результат.
Сервер имеет доступ к Интернету, но сам недоступен из Интернета, а доменное имя заканчивается на .lan.
Так вот… играет ли Let’s Encrypt какую-либо роль, если центр сертификации не может проверить его из Интернета?
Я установил Ubuntu 18.04 LTS, и у меня та же проблема.
lsb_release -a:
Distributor ID: Ubuntu
Description: Ubuntu 18.04.4 LTS
Release: 18.04
Codename: bionic
lsof -i:80
COMMAND PID USER FD TYPE DEVICE SIZE/OFF NODE NAME
docker-pr 1598 root 4u IPv6 21087 0t0 TCP *:http (LISTEN)
netstat -tulpn:
Active Internet connections (only servers)
Proto Recv-Q Send-Q Local Address Foreign Address State PID/Program name
tcp 0 0 127.0.0.53:53 0.0.0.0:* LISTEN 854/systemd-resolve
tcp 0 0 0.0.0.0:22 0.0.0.0:* LISTEN 1233/sshd
tcp6 0 0 :::80 :::* LISTEN 1598/docker-proxy
tcp6 0 0 :::22 :::* LISTEN 1233/sshd
tcp6 0 0 :::443 :::* LISTEN 1583/docker-proxy
udp 0 0 127.0.0.53:53 0.0.0.0:* 854/systemd-resolve
docker ps:
CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES
798e15496293 local_discourse/app "/sbin/boot" 2 hours ago Up 3 minutes 0.0.0.0:80->80/tcp, 0.0.0.0:443->443/tcp app
Discourse не будет работать по IP-адресу; для продолжения вам необходимо иметь доменное имя, например example.com.
Если вы не используете общедоступное полное доменное имя (FQDN), то обычный путь установки для вас не подойдет. Локальные записи DNS и доменные имена здесь не взаимозаменяемы. Let’s Encrypt не сработает, так как запись DNS не является действительной.
Вам придется вручную изменить файл app.yml, чтобы отключить HTTPS и Let’s Encrypt. Закомментируйте ненужные шаблоны и строку, которая открывает порт 443.
Если вы не планируете выпускать самоподписанный сертификат, все будет обслуживаться через HTTP.
У меня та же проблема с Fun Tec. У меня есть свой домен, и я не думаю, что дело в letsencrypt. Вот мои логи после выполнения команды sudo ./launcher restart app. Можете ли вы найти там какую-либо полезную информацию?
Shutting Down
run-parts: executing /etc/runit/3.d/01-nginx
ok: down: nginx: 0s, normally up, want up
run-parts: executing /etc/runit/3.d/02-unicorn
(2165) exiting
ok: down: unicorn: 1s, normally up
run-parts: executing /etc/runit/3.d/10-redis
ok: down: redis: 0s, normally up
run-parts: executing /etc/runit/3.d/99-postgres
ok: down: postgres: 0s, normally up
ok: down: nginx: 2s, normally up
ok: down: postgres: 0s, normally up
ok: down: redis: 1s, normally up
ok: down: unicorn: 2s, normally up
ok: down: cron: 0s, normally up
ok: down: rsyslog: 0s, normally up
run-parts: executing /etc/runit/1.d/00-ensure-links
run-parts: executing /etc/runit/1.d/00-fix-var-logs
run-parts: executing /etc/runit/1.d/01-cleanup-web-pids
run-parts: executing /etc/runit/1.d/anacron
run-parts: executing /etc/runit/1.d/cleanup-pids
Cleaning stale PID files
run-parts: executing /etc/runit/1.d/copy-env
run-parts: executing /etc/runit/1.d/letsencrypt
[Wed 16 Dec 2020 01:26:10 PM UTC] Using CA: https://acme-v02.api.letsencrypt.org/directory
[Wed 16 Dec 2020 01:26:10 PM UTC] Single domain='a.mapengfei.xyz'
[Wed 16 Dec 2020 01:26:10 PM UTC] Getting domain auth token for each domain
У меня та же проблема.
Свежая установка Ubuntu 24 LTS.
Bootstrap завершается, после чего отображается страница по умолчанию Nginx.
При запуске ./discourse-doctor получаю:
DISCOURSE DOCTOR Пт, 25 апр 2025, 18:19:55 UTC
OS: Linux talk 6.8.0-58-generic #60-Ubuntu SMP PREEMPT_DYNAMIC Пт, 14 мар 2025, 18:29:48 UTC x86_64 x86_64 x86_64 GNU/Linux
Найден containers/app.yml
==================== НАСТРОЙКИ YML ====================
DISCOURSE_HOSTNAME=talk.technospider.com
SMTP_ADDRESS=smtppro.zoho.com
DEVELOPER_EMAILS=СКРЫТО
SMTP_PASSWORD=СКРЫТО
SMTP_PORT=587
SMTP_USER_NAME=david@technospider.com
LETSENCRYPT_ACCOUNT_EMAIL=СКРЫТО
==================== ИНФОРМАЦИЯ О DOCKER ====================
ВЕРСИЯ DOCKER: Docker version 26.1.3, сборка 26.1.3-0ubuntu1~24.04.1
ПРОЦЕССЫ DOCKER (docker ps -a)
CONTAINER ID IMAGE COMMAND СОЗДАН СТАТУС ПОРТЫ
ИМЯ
394018ecf271 local_discourse/app "/sbin/boot" 21 минуту назад Работает 21 мин 0.0.0.0:80->80/tcp, :::80->80/tcp, 0.0.0.0:443->
443/tcp, :::443->443/tcp app
Контейнер Discourse app запущен
==================== ПЛАГИНЫ ====================
- git clone https://github.com/discourse/docker_manager.git
Несанкционированные плагины не обнаружены.
Официальный список см. по адресу: https://github.com/discourse/discourse/blob/main/lib/plugin/metadata.rb
========================================
Версия Discourse на talk.technospider.com: НЕ НАЙДЕНА
Версия Discourse на localhost: НЕ НАЙДЕНА
==================== ИНФОРМАЦИЯ О ПАМЯТИ ====================
OS: Linux
RAM (МБ): 4055
всего использовано свободно общий кэш buff/cache доступно
Mem: 3867 1695 174 56 2345 2172
Swap: 3866 98 3768
==================== ПРОВЕРКА МЕСТА НА ДИСКЕ ====================
---------- Место на диске ОС ----------
Файловая система Размер Использовано Доступно % Использовано Смонтировано на
/dev/mapper/ubuntu--vg-ubuntu--lv 19G 12G 6.0G 66% /
==================== ИНФОРМАЦИЯ О ДИСКАХ ====================
Диск /dev/loop0: 44.45 МБ, 46604288 байт, 91024 сектора
Единицы: сектора по 1 * 512 = 512 байт
Размер сектора (логический/физический): 512 байт / 512 байт
Размер ввода-вывода (минимальный/оптимальный): 512 байт / 512 байт
Диск /dev/loop1: 73.89 МБ, 77475840 байт, 151320 секторов
Единицы: сектора по 1 * 512 = 512 байт
Размер сектора (логический/физический): 512 байт / 512 байт
Размер ввода-вывода (минимальный/оптимальный): 512 байт / 512 байт
Диск /dev/loop2: 144.46 МБ, 151478272 байт, 295856 секторов
Единицы: сектора по 1 * 512 = 512 байт
Размер сектора (логический/физический): 512 байт / 512 байт
Размер ввода-вывода (минимальный/оптимальный): 512 байт / 512 байт
Диск /dev/sda: 40 ГиБ, 42949672960 байт, 83886080 секторов
Модель диска: VMware Virtual S
Единицы: сектора по 1 * 512 = 512 байт
Размер сектора (логический/физический): 512 байт / 512 байт
Размер ввода-вывода (минимальный/оптимальный): 512 байт / 512 байт
Тип метки диска: gpt
Идентификатор диска: 57115BC0-AFA9-4902-9910-BB09315092BA
Устройство Начало Конец Сектора Размер Тип
/dev/sda1 2048 2203647 2201600 1G EFI System
/dev/sda2 2203648 6397951 4194304 2G Linux filesystem
/dev/sda3 6397952 83884031 77486080 36.9G Linux filesystem
Диск /dev/mapper/ubuntu--vg-ubuntu--lv: 18.47 ГиБ, 19834863616 байт, 38739968 секторов
Единицы: сектора по 1 * 512 = 512 байт
Размер сектора (логический/физический): 512 байт / 512 байт
Размер ввода-вывода (минимальный/оптимальный): 512 байт / 512 байт
==================== КОНЕЦ ИНФОРМАЦИИ О ДИСКАХ ====================
==================== ПРОВЕРКА ПОЧТЫ ====================
Для надежного теста получите адрес на http://www.mail-tester.com/
Отправка письма на СКРЫТО . .
Тестирование отправки на technospider@icloud.com через smtppro.zoho.com:587, пользователь: david@technospider.com с простой аутентификацией.
Соединение с SMTP-сервером успешно.
Отправка на technospider@icloud.com. . .
Письмо принято SMTP-сервером.
Message-ID: 9e763c7d-b64d-4119-8f74-edd47154a799@talk.technospider.com
Если вы не получили сообщение, проверьте папку СПАМ
или повторите тест с помощью сервиса, например http://www.mail-tester.com/.
Если сообщение не доставлено, проблема не в Discourse.
Проверьте логи SMTP-сервера по указанному выше Message-ID, чтобы узнать причину
неудачной доставки сообщения.
==================== ГОТОВО! ====================
И тестовое письмо приходит, как и ожидалось.
Чувствую, что я уже почти добился успеха.
docker ps:
394018ecf271 local_discourse/app "/sbin/boot" 47 минут назад Работает 47 мин 0.0.0.0:80->80/tcp, :::80->80/tcp, 0.0.0.0:443->443/tcp, :::443->443/tcp app
Просто для уточнения: похоже, что страница nginx доступна только при обращении к имени хоста с самого хост-компьютера, а с других компьютеров в сети возникает ошибка «не удалось подключиться».
Да, ./discourse-setup — это последовательность начальной настройки, верно? Контейнер не работал бы, если бы я этого не сделал, насколько я понимаю. Я следовал инструкциям здесь, и примерно через 7 минут я увидел страницу «Добро пожаловать в NGINX».
Есть ли какой-то конкретный тест подключения, который вы хотели бы, чтобы я запустил? Вывод от настройки был настолько объёмным, что я не смог его полностью зафиксировать.