Для контекста: мой тестовый сайт Discourse работает в контейнере Proxmox за Nginx (npmplus) на другом сервере в той же сети (но не в той же подсети). Ничего особенного. Я пытался включить force-https, но постоянно получал множество ошибок валидации CSRF, поэтому просто отключил его снова, так как это не стоило борьбы. Независимо от всего этого, сайт отлично работает по https, поскольку Nginx и Cloudflare правильно настроены для этого:
Есть ли обходной путь, который не требует многочасовой борьбы с npmplus, чтобы валидация CSRF в Discourse перестала ругаться на всё подряд? Эта тема не для отладки npmplus или SSL, я просто хочу исправить Discourse ID.
Сообщение об ошибке «Discourse ID returned» указывает на то, что Redirect URI сайта должен использовать https, поэтому необходимо включить force_https либо иным образом указать в конфигурации вашего прокси, что запросы поступают через https.
Хм, похоже, я никогда этого не замечал. Как я уже говорил, я пытался включить force_https, но при выполнении любых действий постоянно возникали ошибки CSRF. Возможно, обычные переменные nginx просто не работают в npmplus (согласно инструкциям, указанным прямо выше), потому что я использовал следующую конфигурацию:
Сейчас проблема, кажется, кроется в странном поведении переменных, которые экспонирует npmplus. У меня раньше была рабочая конфигурация, но я её потерял и пока не совсем уверен, что делать. Я остановился на следующем варианте, но не хочу включать настройку, пока не буду на 100% уверен, что она сработает, чтобы избежать ошибки BAD CSRF и необходимости снова лезть в консоль Rails для исправления.
Невозможно разыменовать этот указатель — я полагаю, вы говорите о контейнере Discourse?
force_https не влияет на то, работает ли Discourse на порту 443 (HTTPS); он лишь указывает Discourse, что следует считать, что к нему всегда обращаются через https.