Как установить Discourse с Nginx в качестве прокси на конкретный путь?

Привет. Мне удалось успешно установить и запустить Discourse на моей Linux-машине с использованием nginx в качестве терминала SSL и директивы proxy_pass.

Проблема в том, что я смог сделать это только для адреса discourse.example.com, а хочу, чтобы он работал как example.com/discourse. Я пробовал изменить переменную DISCOURSE_HOSTNAME и указать там нужный адрес, но в результате получаю стандартную страницу «Ой, страница не найдена» без какого-либо CSS-оформления. Я пытался искать в исходном коде и документации директиву ‘baseurl’ (так как в других приложениях её часто называют именно так), но безрезультатно.

Возможно ли это вообще? Если да, пожалуйста, дайте ссылку на описание того, как это сделать.

Следите за Serve Discourse from a subfolder (path prefix) instead of a subdomain

Вы смотрели Поддержка подпапок с Docker или Discourse в подпапке, несколько серверов с общим доменом?

Окей, «subfolder» — вот ключевое слово. Я бы никогда не догадался, спасибо!

Кстати, этот документ предполагает, что я использую встроенный nginx, а не свой собственный, но, полагаю, мне просто нужно соответствующим образом изменить конфигурацию (особенно строку rewrite).

Вы будете использовать как внешний nginx, так и внутренний nginx, находящийся внутри контейнера Docker с Discourse.

Верно. Сначала я думал, что не использую внутренний httpd, так как не открываю порты, но — глупо с моей стороны — я всё ещё использую сокет, который должен быть подключён к чему-то.

Значит, мне нужно использовать переписывание (rewrite) для обоих?