Итак, вы хотите разместить Discourse в подпапке (префикс пути), а не на поддомене?
Круто. Звучит именно так, как я искал. Спасибо.
Как мне попасть сюда?? То есть, как найти эту часть?? Там два набора одинаковых строк! Какие из них нужно редактировать или изменять??
РЕДАКТИРОВАНИЕ отсюда:
Забудьте, приятель ..! Спасибо за ваше время! Я разобрался сам ![]()
Кстати, ваш способ не совсем работает.
Вам также нужно настроить переменные окружения, по крайней мере в Discourse 3.
Откройте ваш app.yml
и найдите переменные окружения, затем заполните их.
Спасибо за это.
Я сначала настроил Discourse в автономном режиме, и страница регистрации корректно отображалась по HTTP. Затем я установил nginx, но без сертификата, так как использую его в тестовой лаборатории без доступа к Let’s Encrypt. Теперь я вижу страницу регистрации, но без стилей. В логах nginx на хосте я вижу ошибки 404. Есть ли какие-то идеи, как это исправить?
Спасибо.
Решено: мне нужно закомментировать строку try_files $uri $uri/ =404;, которая является настройкой по умолчанию в Debian 11 и nginx 18.0-6.
Ошибки. После настройки этого Chrome отображает ошибки:
Смешанный контент: страница по адресу '<URL>' была загружена через HTTPS, но запросила небезопасный шрифт '<URL>'. Этот запрос был заблокирован; содержимое должно предоставляться через HTTPS.
Вы включили force_https?
Да, я сделал это на этапе certbot --nginx. И я пробовал много раз, не сработало.
Вам нужно настроить параметр force_https в Discourse, а не в nginx. Лучше всего сделать это через переменную окружения, но вы также можете изменить это в интерфейсе управления, если у вас есть доступ к разделу «Администрирование/Настройки».
Я выполнил шаги, описанные выше, и успешно запустил nginx, но при переходе по URL получил ошибку ERR_TOO_MANY_REDIRECTS.
Не могли бы вы помочь мне понять, в чём причина?
Ошибка привязки (bind) к unix:/shared/nginx.http.sock (95: Операция не поддерживается)
Я запутался: я не могу запустить /discourse-setup, так как устанавливаю его на существующий веб-сервер, но мне нужно отредактировать файл .yml, который не создаётся, пока я не запущу /discourse-setup. Значит, app.yml не существует, так как же я могу его отредактировать?
Скопируйте standalone.yml из директории samples.
Чувствую себя идиотом: прочитал этот пост двадцать раз и упустил, что в последней строке этого раздела сказано «Добавлено». Могу я предложить @riking изменить введение следующим образом:
Я внес предложенное изменение (и удалил посты о том, является ли это вики, что, по-видимому, не позволяет вам редактировать из-за вашего уровня доверия — извините за это). Это незаметное изменение, но я думаю, что оно может помочь другим. Спасибо.
У меня немного другая конфигурация: мой обратный прокси работает не на хост-машине, а в отдельном контейнере Docker.
В данный момент я использую сеть Docker для соединения этих двух компонентов, поэтому Discourse не открывается через unix-сокет.
Работает отлично, но есть существенный недостаток: ограничение скорости видит только IP-адрес обратного прокси и поэтому ошибочно ограничивает скорость самого обратного прокси…
Я вижу несколько вариантов:
- Удалить шаблон ограничения скорости. (Не лучший вариант…)
- Создать свой собственный шаблон, который настроит nginx на использование
set_real_ip_fromдля обратного прокси. - Изменить шаблон ограничения скорости, чтобы использовать
$http_x_forwarded_forвместо$binary_remote_addr. - Открыть unix-сокет в контейнере обратного прокси. (Не знаю, возможно ли это и как.)
В идеале я не хотел бы создавать свой собственный шаблон или изменять существующие, а использовать стандартную конфигурацию как можно ближе к оригиналу, то есть вариант 4.
Есть какие-то идеи? Плюсы и минусы? Мнения?
Понимаю, что у вас эта проблема возникла давно, но я столкнулся с ней сегодня вечером и нашел решение, которое мне помогло.
Моя проблема заключалась в том, что мой регистратор выступал в роли прокси с настройками SSL/TLS, установленными в режим «Гибкий» (Flexible). Переключение на режим «Полный» (Full) сразу же решило проблему — жаль только, что я не додумался до этого раньше, прежде чем пересобирать всё около 20 раз.
Что подразумевается под установкой с двумя контейнерами? Спасибо.
Контейнер — это концепция Docker, представляющая собой изолированную вычислительную единицу, которая может иметь независимую конфигурацию от операционной системы.
Обычно Discourse и все его зависимости (при стандартной установке) работают в одном контейнере.
Существуют более сложные варианты установки, где другие сервисы могут работать в отдельном контейнере, и даже такие, где Discourse разделён на два контейнера (один для базы данных, другой для веб-части) — это называется «установка в два контейнера».
Обратите внимание: Discourse использует собственный специализированный запускатор, который не совсем идентичен стандартному запуску в Docker.
У меня вопрос: если обратный прокси находится в отдельном контейнере Docker, может ли он всё ещё использовать Unix-сокеты?


