Установка Docker не работает с прокси Cloudflare

Я настроил экземпляр 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. :smiling_face: Поэтому не начинайте с этого, если текущая ситуация для вас непонятна!)

Как я уже говорил, забудьте об этом.

Я разобрался.

Оказывается, нельзя разрешать Cloudflare проксировать ваш поддомен Discourse — нужно нажать на оранжевое облако на A-записи поддомена, чтобы переключить его в режим «DNS только» (серое облако). После этого ваша установка Discourse должна без проблем получить доступ к соответствующим портам.

Спасибо!