Всем привет! Я уже несколько раз пытался запустить Discourse на Google Cloud. Сейчас у меня третья попытка: создаю экземпляр виртуальной машины (Ubuntu 18.04 minimal) и вручную устанавливаю Discourse через терминал. Следуя инструкции, всё выглядит нормально, но после выполнения ./discourse-setup я не могу получить доступ к сайту.
Также я пробовал установить Discourse с помощью решений «в один клик» из Google Marketplace (официальное решение от Google и решение от Bitnami). В этом случае я мог получить доступ к стартовой странице Discourse.
Подозреваю, что проблема связана с портами в Google (и что готовые решения её обходят), но я слишком мало знаю обо всём этом, чтобы разобраться самостоятельно. Есть какие-то идеи?
По моему пониманию, для предоставления публичного доступа к виртуальной машине в G Cloud нам необходимо отметить два флажка. При необходимости эту настройку можно изменить позже.
Теперь я думаю, что, возможно, у меня не запущен веб-сервер? Нужно ли мне установить Nginx до или после установки Discourse, или что-то в этом роде? Я следую логике из этой темы, которая идентична моей проблеме.
Хорошо, я начинаю думать, что это и есть проблема. Казалось, что Nginx установлен, но не запущен. Я завершил процессы с PID 14311 и 14295 (docker-proxy), а затем запустил Nginx. Теперь Nginx привязан к порту 80, и при доступе к моему сайту я вижу приветствие от Nginx!
Теперь нужно снова запустить Docker/Discourse.
Также я нашел это руководство по установке Discourse/Nginx на более старой версии Ubuntu. Похоже, они изменили порт для Docker, с порта 80 по какой-то причине. Возможно, здесь есть какой-то конфликт.
Как-то удалось запустить Nginx на порту 80, а Docker-proxy слушает порты 8060 для HTTP и 9443 для HTTPS (как предлагается в другом руководстве). Но, добившись этого, я снова растерян. Discourse кажется таким замечательным форумом, но, apparently, невозможно установить на Google Cloud для таких новичков, как я.
Вам не нужно запускать выделенный веб-сервер, если вы не планируете использовать сервер для чего-то большего, чем хостинг Discourse, так как в Discourse уже встроен сервер Nginx. Можете ли вы подтвердить, что вашему серверу назначен публичный IP-адрес и что он настроен на разрешение внешних подключений к портам 22, 80 и 443?
Да. Мой экземпляр виртуальной машины в Google имеет публичный IP-адрес и пропускает трафик на порты 22, 80 и 443.
Я полагаю, это также было продемонстрировано, когда я завершил процессы docker-proxy (на портах 80 и 443), запустил Nginx (на порту 80) и смог получить доступ к стартовой странице Nginx на моём сайте.
Я уже установил его три раза, и каждый раз порты оказываются незанятыми. Я выполнил три успешные установки, но так и не смог получить доступ к форуму. Поэтому я рассматриваю возможность использования версии от Google (которая работает, но не позволяет настроить SMTP), а затем найти способ настроить SMTP из этой версии.
Можно ли как-то настроить SMTP после завершения установки?
Следуя «Шагу 11» по этой ссылке, я смог [создать (так как его не существовало) и] отредактировать файл discourse.conf. После этого, как я понял, я мог перезапустить «службу discourse» и проверить настройки электронной почты?
Это означает, что мне не нужно переустанавливать Discourse, верно?
Однако, посмотрев на запущенные службы, я не вижу ничего под названием «discourse», хотя мой форум Discourse, очевидно, работает.
Разве Discourse не должен быть виден здесь? Есть ли здесь какая-то другая служба, которую я мог бы перезапустить, что, в свою очередь, перезапустит службу Discourse?
Извините, я не имею представления о том, как настроен образ Google Cloud. Я выполнил более десятка установок (включая одну на прошлой неделе) и уверен, что проблема, скорее всего, связана с конфигурацией вашей виртуальной машины.
Вот мои подготовительные шаги перед следованием официальному руководству по установке:
Настроить Compute Engine для разрешения трафика HTTP и HTTPS.
Настроить DNS и подтвердить его работу.
Обеспечить подключение к вашей виртуальной машине через SSH.
Я могу гарантировать, что процесс работает.
P.S. Обычно я использую минимальную версию Ubuntu на Gcloud для установки Discourse.
Хм. Как странно. Но спасибо за подтверждение, что это действительно возможно в Google Cloud. Я тоже считаю, что установка Discourse проходит нормально, а проблема в ВМ и портах. Завтра попробую в четвёртый раз, хотя каждый раз я выполнял эти подготовительные шаги. Спасибо, Бхану.
Сейчас займусь этим. Только что удалил старые экземпляры и проект, создал новый проект и экземпляр в Google Cloud. Сейчас попробую установить Discourse и сообщу, какие порты проверил!
Я повторил тот же процесс ещё раз, но на этот раз был более внимателен к каждому шагу.
Удалил свой экземпляр и проект в Google Cloud и начал с чистого проекта.
Затем я создал новый проект и новый экземпляр: Ubuntu 18.04 LTS минимальная версия. Включил HTTP/HTTPS. Прежде чем следовать официальному руководству, ссылка на которое приведена выше, я поступил так, как посоветовал Бхану, и проверил подключение. Я следовал «приветственному руководству» Google Cloud, которое также включает запуск скрипта Python-сервера на порту 80 и т.д.
В процессе следования «официальному руководству» я был особенно внимателен при настройке SMTP. По какой-то причине я решил не использовать Mailgun, а в итоге выбрал Sendinblue. Это работает отлично!
Я действительно не знаю, в чём была разница на этот раз, но теперь всё работает. Спасибо за обсуждение со мной в теме!
Не знаю, почему я не могу редактировать свой предыдущий пост, но модератор может объединить их.
Я просто хотел добавить, что, возможно, проблема и решение заключались в том, что я был слишком нетерпелив.
Поскольку я установил некорректный плагин, мне недавно пришлось полностью переустановить экземпляр Discourse. При запуске нового экземпляра у меня появился новый IP-адрес. Поэтому я зашел к своему хостинг-провайдеру, обновил A-запись/DNS, которая указывает на мой поддомен discourse.mydomain.com в сторону IP-адреса моего экземпляра Google Cloud, а затем вернулся к SSH-подключению к Google Cloud, чтобы запустить настройку.
При первом запуске ./discourse-setup программа проверяет возможность привязки к портам 80 и 443. Но по какой-то причине она снова отказалась привязываться к портам 80 и 443. Я проверил DNS через who.is, и поддомен корректно разрешался в IP-адрес и так далее, но всё равно не работало. Попробовал запустить ./discourse-setup три раза — безрезультатно. Проверил с помощью netstat -ltnpu, ничего необычного не обнаружил. Подождал ещё 5 минут, запустил в четвёртый раз, и теперь всё работает.
Не могу отредактировать свой предыдущий пост. Но у меня действительно возникли проблемы с повторной установкой. На этот раз я также добавил следующие правила в фаервол: