Порт 80/443 недоступен при установке Discourse

ОБНОВЛЕНИЕ: nmap и nc показывают, что порты 80 и 443 закрыты. Это проблема для настройки Discourse? Я думал, что это просто означает, что порты открыты, но на них не прослушивается никакой сервис. Я ожидал, что настройка Discourse сама… ну, вы знаете… настроит всё необходимое на этих портах. У меня уже есть правила брандмауэра, разрешающие трафик на эти порты, поэтому я не понимаю, как ещё их открыть. Нужно ли, чтобы на этих портах уже прослушивались сервисы для запуска настройки Discourse (и как это сделать)?

< Оригинальный пост >

Привет, я новичок в Discourse, пытаюсь запустить discourse-setup, и получаю ненавистные сообщения «Порт 443 компьютера, по-видимому, недоступен» и «Подключение к порту 80 также не удалось».

Я знаю, что это распространённая проблема, и прочитал множество постов на эту тему, но ни одна из рекомендаций не сработала. У меня всё в /var/discourse, curl установлен, DNS настроен, брандмауэр не блокирует, Cloudflare не используется и т. д.

Я использую Ubuntu 22.04 на VPS с IPv6 (без IPv4-адреса, но я читал, что это нормально). На VPS также установлен nginx для будущего использования, но я остановил его (а также все службы, не связанные с Discourse), отключил автозапуск и перезагрузил сервер. Моя цель — запустить Discourse отдельно на этом сервере.

Я могу пинговать свой VPS, используя полное поддоменное имя (например, discourse.myvps.com), как с самого VPS, так и с домашнего компьютера, и мой провайдер электронной почты подтвердил правильность моих настроек DNS для почтового сервиса. Я также добавил правила ufw, чтобы явно открыть порты 80 и 443 для трафика как IPv4, так и IPv6, и правила корректно отображаются при выполнении «ufw status». Моя хостинговая компания заявила, что ничего не блокирует. И я не думаю, что мне нужно указывать что-либо ещё для доступа к контейнеру Docker Discourse.

Однако netstat не показывает ничего для этих портов, а NC выдаёт «connection refused». Telnet также возвращает «connection refused», но я предполагаю, что это потому, что у меня пока не запущен никакой HTTP-сервис (разве установщик Discourse не должен позаботиться об этом?).

Любая помощь будет очень кстати, спасибо!

PS. Готов предоставить любую дополнительную информацию, скриншоты и т. д.

Возможно, вы уже решили эту проблему. Если нет, подтвердите, пожалуйста, что вы следуете этому руководству по установке Discourse: discourse/docs/INSTALL-cloud.md at main · discourse/discourse · GitHub? Также убедитесь, что аппаратное и программное обеспечение вашего сервера соответствуют требованиям, описанным здесь: discourse/docs/INSTALL.md at main · discourse/discourse · GitHub.

Я не лучший человек, чтобы ответить на ваши вопросы. В прошлом, после следования руководству на чистом сервере Ubuntu 22.04, настройка у меня работала сразу без дополнительной конфигурации.

Если у вас всё ещё возникают проблемы, кто-то из сообщества, вероятно, сможет помочь.

Спасибо. Да, я следую этой инструкции. Мой сервер имеет избыточные ресурсы, все предварительные требования были установлены без проблем, и всё шло гладко, пока я не попытался запустить discourse-setup.

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

Похоже, вы делаете всё правильно. Вы уверены, что ваш DNS указывает только на IP-адрес вашего сервера?

О. Я не могу с первого взгляда сказать, проверяет ли discourse-setup только IPv4.

Попробуйте запустить ./discourse-setup --skip-connection-test, чтобы пропустить проверку соединения.

Спасибо, Джей — это сработало и позволило мне перейти к следующей ошибке.

Я опубликую это в отдельной теме, так как это странно и не связано с текущей темой: команда git clone не выполняется в discourse-setup, хотя у меня настроен прокси v6, и если я введу ту же команду в командной строке, всё работает.