Я настроил экземпляр Amazon EC2 для хостинга Discourse, и всё шло хорошо — пока я не ввёл все данные в скрипт установки и не запустил его. После этого образ Docker для Discourse должен был заработать на порту 80.
Но этого не произошло.
Я не знаю, почему. Единственное, что удалось диагностировать: если остановить контейнер Docker, а затем перезапустить его, то при обращении к IP-адресу моего экземпляра EC2 появляется стандартный экран сервера nginx. Однако через несколько секунд даже это прекращается.
Я использовал установку Docker, как рекомендовано.
При переходе по доменному имени ничего не происходит. При переходе по IP-адресу тоже ничего не происходит.
Сервер запущен на порту 80.
Когда я останавливаю контейнер Docker и перезапускаю его, как указано выше, я вижу стандартную страницу nginx «It works!». Однако через несколько секунд всё снова перестаёт работать.
Какой дистрибутив вы используете? Стандартный сервер Ubuntu не поставляется с nginx, поэтому, если вы не устанавливали его вручную, вы никогда не должны видеть эту страницу.
Если nginx запущен на хосте, это действительно помешает установке и приведет к некорректной работе.
Кажется, я на самом деле изменил файл /etc/hosts, чтобы обойти настоящую проблему: установщик сообщал, что порты 443 и 80 недоступны через используемое мной имя хоста.
Я решил удалить установку и начать сначала, и теперь всё повторяется. Так что давайте забудем всё, что я сказал выше, и начнём заново.
Почему не удаётся получить доступ к портам 443 и 80?
В моём списке правил безопасности группы EC2 разрешён весь входящий HTTP- и HTTPS-трафик, поэтому я немного сбит с толку.
Стандартная установка не использует nginx, установленный на системе, и если на хосте установлен nginx, Discourse не получит доступ к портам 80 и 443. Установив nginx на систему, вы предотвратили работу Discourse в его стандартной конфигурации.
Это не имеет никакого отношения к Amazon. Это просто системное администрирование Linux.
(Может быть уместно установить nginx на систему для Setting up offline page, но это требует понимания того, как работают порты в Linux. Поэтому не начинайте с этого, если текущая ситуация для вас непонятна!)
Оказывается, нельзя разрешать Cloudflare проксировать ваш поддомен Discourse — нужно нажать на оранжевое облако на A-записи поддомена, чтобы переключить его в режим «DNS только» (серое облако). После этого ваша установка Discourse должна без проблем получить доступ к соответствующим портам.