Установка Discourse на Lightsail

Привет, мир! Я пытаюсь запустить свой первый форум Discourse и мне нужна помощь…

Настройки в app.yml выглядят правильно. Я пробовал перезагружать систему, но Discourse недоступен. Буду очень признателен за любые советы по началу устранения неполадок.

Я не очень уверен насчёт Lightsail, но в случае с AWS, когда домен не указывает на их IP-адрес правильно, в 90% случаев виноваты группы безопасности. Можете ли вы попробовать открыть необходимые порты (80, 443, 587 и т. д.) в группе безопасности AWS для вашего VPS?

Спасибо за ваш ответ. Я открыл эти порты (443 и 587 были закрыты) и пересобрал приложение, но всё ещё безрезультатно. Подозреваю, что проблема на стороне DNS, но не уверен, что ещё можно изменить. В настоящее время домен becomeachiron.com не настроен, только поддомен. Вероятно, это может нарушить работу поддомена, но я не знаю, где разместить его на Lightsail.

Как вы настроили только поддомен?

Недавно мы перешли на Discourse и Amazon Lightsail (поэтому у меня мало опыта в этой области).
У меня точно такая же конфигурация, и я без проблем установил Discourse.
Сначала я установил официальный образ Debian AMI от Amazon.
Затем настроил имя хоста под мой домен (discourse.becomeachiron.com).
После этого обновил Debian до последней версии:

sudo apt update
sudo apt upgrade

А затем следовал инструкциям по установке Discourse (установил git, а затем Discourse).

Никаких проблем, всё сработало.

Мне пришлось открыть порт 443, чтобы заработал HTTPS (и настроить его в Discourse).

Проблема, которую вы описываете, кажется связанной с DNS и разрешением IP-адресов.

В Lightsail у машины есть три IP-адреса:

  • Статический частный IP, доступный только из машин внутренней сети в том же регионе, что и у вас.
  • Динамический публичный IP, назначаемый автоматически при запуске экземпляра; он теряется при остановке машины, и при следующем запуске вы получаете другой.
  • Публичный статический IP-адрес, который можно назначить машине. Этот адрес постоянный (но за него взимается плата, даже если машина остановлена; сумма небольшая, но вы платите за каждый час, когда машина не работает).

Назначили ли вы машине статический публичный IP-адрес?

Если да, то именно этот IP нужно настроить в вашем DNS.

Если нет, вам придётся использовать публичный IP-адрес и менять его каждый раз при запуске машины, так как он меняется (хотя, возможно, можно установить клиент динамического IP на вашу машину, который делает это автоматически, если найдёте совместимый с Amazon DNS).

Затем нужно подождать некоторое время для распространения изменений в DNS.

Похоже, вы не настроили домен:

 pfaffman@balloon:~$ dig +short discourse.becomeachiron.com @NS-1041.AWSDNS-02.ORG

ничего не возвращает. Эта ссылка позволит проверить распространение, но на данный момент в DNS-серверах AWS нет записи о вашем поддомене.

Записи нет, так как, похоже, он не использует Amazon DNS. Он утверждает, что всё работает с Google DNS.

Поэтому ему нужно настроить это в Google.

discourse.becomeachiron.com в настоящее время разрешается в 99.79.192.57

Спасибо всем за ваши ответы. В идеале я хотел бы разместить Discourse на домене, а не на поддомене, но все инструкции, которые я нашел, настаивают на использовании поддомена. Это обязательно?

Я тоже сейчас ломаю голову над всем этим :slight_smile:

Я читал, что можно использовать чистый домен без www или поддомена discourse.

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

Я настаиваю: вы настроили статический IP-адрес для вашего экземпляра Lightsail?

По умолчанию он динамический.

Если нет, создайте статический IP.

Перейдите в панель Lightsail, выберите свой экземпляр и откройте вкладку «Network» (Сеть).
Затем выберите «Create static IP» (Создать статический IP).

Ваш экземпляр получит новый постоянный IP-адрес.

Затем перейдите в Google DNS и зарегистрируйте этот IP-адрес за именем вашего компьютера.

Вот где я сейчас нахожусь:

В Lightsail

  • создал статический IP-адрес и привязал его к своему экземпляру (спасибо, fernando)
  • создал DNS-зону

В Google Domains

  • обновил серверы имен на те, что из DNS-зоны
  • создал поддомен и указал его на статический IP-адрес

Discourse настроен правильно — я могу получить к нему доступ через публичный IP-адрес. Если я ничего не упустил, теперь мне остается ждать обновления DNS.

Вы что-то делаете не так.

Ваши SOA-записи указывают на DNS-серверы AWS, а не Google, но вы утверждаете, что меняете DNS-записи в Google.

becomeachiron.com
primary name server = ns-612.awsdns-12.net
responsible mail addr = awsdns-hostmaster.amazon.com
serial = 1
refresh = 7200 (2 hours)
retry = 900 (15 mins)
expire = 1209600 (14 days)
default TTL = 86400 (1 day)

becomeachiron.com nameserver = ns-1041.awsdns-02.org
becomeachiron.com nameserver = ns-1824.awsdns-36.co.uk
becomeachiron.com nameserver = ns-216.awsdns-27.com
becomeachiron.com nameserver = ns-612.awsdns-12.net

Измените настройки DNS в Amazon DNS или обновите SOA-записи, чтобы они указывали на Google, если вы используете Google DNS.

Верно! Именно это я и имел в виду. Видимо, мне следовало добавить запись whois. Вы объяснили это лучше, чем я.

Так что либо измените запись whois, либо обновите имена серверов AWS.

Я вас не понял, извините.

Я в замешательстве… Я зарегистрировался через Google Domains, но Lightsail сгенерировал имена серверов.

Вы можете зарегистрировать домен у одного регистратора и использовать DNS у другого провайдера.

При покупке домена вы приобретаете только имя и SOA-запись, которая хранится на сервере регистратора домена.

Услуги DNS независимы от провайдера домена.
SOA-запись указывает, где находятся ваши DNS-серверы.

Конечно, многие регистраторы доменов включают услуги DNS в стоимость, например Google Domains.

Но вы приобрели услуги DNS у Amazon Lightsail, и это изменило вашу SOA-запись в Google.

Я не покупал услуги DNS у Amazon, я использую внешние DNS-сервисы (насколько мне известно, Amazon взимает плату за услуги DNS).

В таком случае вам нужно самостоятельно обновить DNS-записи у вашего провайдера (в вашем случае — у Google).
В этом случае вам нужно изменить SOA-запись на конфигурацию по умолчанию в Google DNS.

Или вы можете использовать DNS-сервисы Amazon и обновлять записи с их помощью. В этом случае оставьте SOA-запись без изменений и используйте инструменты Amazon для изменения DNS-записей.

Если вы используете почтовый сервис Amazon, возможно, вы согласились изменить SOA-запись и указать её на сервисы Amazon.

Вам в основном нужен публичный IP-адрес вашего VPS Lightsail, после чего вы можете управлять DNS в любом удобном месте.

Если вы хотите управлять ими через Amazon, вы можете использовать Route 53, и она предоставит вам имена серверов, которые вы сможете обновить в настройках вашего домена у регистратора (например, Google).

Или вы можете отредактировать текущий файл зоны (в разделе управления DNS вашего домена) и обновить там вашу A-запись.

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

Например, форум сообщества Twitter.

Ещё раз всем спасибо! Я в деле: http://discourse.becomeachiron.com/

Пока разбираюсь, как именно эти компоненты работают вместе — я нечасто занимаюсь настройкой DNS. Теперь нужно как-то поднять свой основной домен :slight_smile:

Похоже, вы используете AWS Route53 для управления своими DNS.

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

  1. Создайте алиас (A) для основного домена (обозначается как @), указывающий на IP-адрес вашего Lightsail.
  2. Отредактируйте файл app.yml, чтобы использовать основной домен.
  3. Пересоберите проект.
  4. Выполните команду discourse remap.

Это всё, что нужно сделать.