Привет, я настроил Discourse через Docker, но появляется только ошибка, указанная в заголовке.
Какой метод установки вы использовали и что вы настроили помимо самого процесса базовой установки?
Однажды я настраивал образы по отдельности и через docker-compose! Однако ошибка сохраняется!
Что ещё я мог настроить неправильно?
Боюсь, этой информации недостаточно, чтобы люди могли дать совет. Вы следовали стандартному руководству по установке?
Если вы сможете добавить детали о вашей конфигурации, о том, как именно вы установили Discourse, и всё остальное, что вы могли сделать, люди, возможно, смогут предложить вам некоторые идеи. ![]()
Если вы использовали docker-compose, то это не стандартная установка. Возможно, вы использовали Bitnami (который здесь не поддерживается)? Если у вас есть доступ к админ-панели/настройкам, вы можете добавить любой домен, на который пытается сослаться система, если поищете в настройках раздел «безопасность контента».
Почему это принудительно установлено на порты 80 и 443?
Могу я это изменить?
Я не знаю. У вас явно не стандартная установка, и вы не объяснили, как вы её установили.
Я не знаю, что принуждает что на портах 80 и 443.
Если вы хотите получить хорошую помощь, вам следует использовать стандартную установку. Если вы хотите получить какую-либо помощь, вам нужно рассказать больше о том, как вы установили.
Ну, я использую стандартную установку, которая принудительно занимает порты 80 и 443.
Значит, вы не использовали docker-compose?
Да, стандартная установка требует порты 80 и 443, включает HTTPS и принудительное перенаправление на HTTPS (force_https). Если вы выполнили стандартную установку, у вас не должно возникнуть описанной вами проблемы.
Вы запускали discourse-setup для установки?
Дело в том, что я хочу запустить Discourse на других портах и подключить его через Apache2 с помощью обратного прокси…
Возможно, если вы расскажете, как вы установили, кто-то другой сможет вам помочь. Возможно, вы хотите настроить Discourse на сервере с существующими сайтами Apache.
Я уже говорил! О стандартной установке!!!
Конечно, можно. Вам нужно, например, открыть - "83:80" в app.yml или любой другой порт, который ваш обратный прокси использует для отправки трафика на бэкенд. Также можно использовать веб-сокеты.
Вы хотите использовать обратный прокси, который не является частью стандартной установки.
Я это сделал, но сайт недоступен.
Тогда ваши настройки неверны. Угадать, в чём именно проблема, практически невозможно. Не используйте CSP — это первое, что нужно сделать. Но находятся ли Apache2 и Discourse на одном сервере? Правильно ли настроен Apache2? И так далее.
Как уже говорилось — вы не используете стандартную установку.
Я не могу использовать стандартную установку! Извините, но что здесь так сложно понять? У меня уже запущен Apache2, и я не вижу смысла его останавливать только потому, что Discourse считает, что он недостаточно гибок для работы на других портах.
В этом и проблема всей ситуации
Мой конфиг Apache2:
<VirtualHost *:80>
ServerName <domain>
ErrorLog ${APACHE_LOG_DIR}/error.log
CustomLog ${APACHE_LOG_DIR}/access.log combined
RewriteEngine on
RewriteRule ^ https://%{HTTP_HOST}%{REQUEST_URI} [R=301,L]
</VirtualHost>
<VirtualHost *:443>
ServerName <domain>
ErrorLog ${APACHE_LOG_DIR}/error.log
CustomLog ${APACHE_LOG_DIR}/access.log combined
SSLEngine On
SSLCertificateFile /etc/letsencrypt/live/<domain>/cert.pem
SSLCertificateKeyFile /etc/letsencrypt/live/<domain>/privkey.pem
SSLCertificateChainFile /etc/letsencrypt/live/<domain>/fullchain.pem
ProxyPass / http://127.0.0.1:90/
ProxyPassReverse / http://127.0.0.1:90/
</VirtualHost>
app.yml:
expose:
- "90:80" # http
- "100:443" # https
Возможно, не так уж и сложно понять, что поддержка от команды предоставляется только для стандартных установок. Вот почему вам приходится надеяться, что кто-то из нас, обычных участников, сможет помочь.
А поскольку вы ничего не сообщаете, задача становится немного трудной. Мы не можем угадать, верна ли ваша конфигурация или указали ли вы правильный порт в app.yml. Мы абсолютно ничего не знаем о вашей настройке.
Конечно, он гибок. Использование обратного прокси перед Discourse довольно тривиально — вне Docker, во всяком случае. Вам просто нужно открыть правильные порты или использовать веб-сокеты, если эти два компонента находятся на одном сервере.
Вы это сделали? Я не знаю, и мои карты не подсказали ![]()
И ещё раз — если CSP является проблемой, не используйте её, пока не разберётесь, что именно вызывает конфликт.