Привет, @Falco,
Я почти уверен, что настроил всё в точности как в твоей инструкции, но заметил кое-что странное.
В конфигурации контейнера я не загружаю SSL-шаблоны, и переменная окружения DISCOURSE_FORCE_HTTPS установлена в true. Не совсем понимаю, что именно она делает, но предполагаю, что она устанавливает SiteSetting.force_https в true и скрывает эту настройку в админ-панели, чтобы её нельзя было отключить.
Моя конфигурация туннеля Cloudflare выглядит так:
ingress:
- hostname: dc.example.com
service: http://dc:80 # dc — имя моего отдельного контейнера с Discourse
Дело в том, что я могу открыть http://dc.example.com, и перенаправление на HTTPS не происходит. Это ожидаемое поведение?
Ты можешь воспроизвести эту проблему? Мне интересно, не баг ли это.
Мои соответствующие настройки Cloudflare:
- SSL/TLS > Обзор > Режим шифрования SSL/TLS: full (не full (strict))
- SSL/TLS > Граничные сертификаты > Всегда использовать HTTPS: выключено
Я знаю, что могу настроить перенаправление через Cloudflare (либо через «Всегда использовать HTTPS», либо через правило массового перенаправления), но я предполагал, что если включено force_https, то сам Discourse должен обрабатывать это и перенаправлять все внутренние URI. Что думаешь?
Если проигнорировать проблему с перенаправлением, то доступ к https://dc.example.com работает нормально независимо от значений DISCOURSE_FORCE_HTTPS или SiteSetting.force_https.
Редактирование: Несмотря на то, что я до сих пор не до конца понимаю, что именно force_https делает в нашем случае (возможно, она ничего не делает, если SSL-шаблоны не подключены?), мне только что пришло в голову, что конфигурация туннеля, скорее всего, не сработает как есть, если Discourse действительно перенаправляет всё на HTTPS. Если бы он это делал, argotunnel не смог бы обращаться к Discourse по HTTP (как в service: http://dc:80), поэтому, возможно, мне стоит:
- положиться на Cloudflare для перенаправления ИЛИ
- заставить Discourse использовать сертификат и настроить cloudflared на обращение к источнику Discourse по HTTPS (
service: https://dc:443)
В любом случае, может быть, стоит обновить твою инструкцию по argotunnel, чтобы учесть этот момент?