Пути загрузки используют порт 80, но протокол — HTTPS

Недавно я восстановил свой давно работающий экземпляр Discourse на новый.

Моя версия Discourse: 3.6.0.beta2-latest.

Теперь у меня проблема: загрузки не работают.

В консоли браузера я вижу множество ошибок net::ERR_SSL_PROTOCOL_ERROR.

В вкладке «Сеть» я вижу, что Chrome пытается получить URL:

https://forum.robot.ba:80/uploads/default/optimized/4X/7/2/b/72be8d09005292d2f7ac37158b6d728a063f79ed_2_32x32.png

Если я вручную удалю порт 80 или изменю протокол с https на http, то смогу открыть ссылку вручную в новом окне браузера.

Есть ли идеи, почему мой экземпляр Discourse добавляет :80 к путям загрузки?

Я искал в настройках сайта параметр «force https», но, похоже, он либо не включён, либо больше не существует.

Возможно, что-то не так в моём файле app.yml? Вот мои шаблоны:

(Я хочу использовать Let’s Encrypt, так как у меня нет собственного SSL-сертификата)

templates:

“templates/postgres.template.yml”

“templates/redis.template.yml”

“templates/web.template.yml”

“templates/web.ratelimited.template.yml”

Раскомментируйте эти две строки, если хотите добавить Lets Encrypt (https)

“templates/web.ssl.template.yml”

“templates/web.letsencrypt.ssl.template.yml”

Вы можете ознакомиться с этим руководством по настройке HTTPS с использованием Let’s Encrypt:

Возможная причина: скрытая настройка «Port»

Иногда после миграции или восстановления в базе данных остаётся скрытая настройка port сайта.
Это может привести к тому, что Discourse добавит неверный порт (например, :80) к HTTPS-URL.

Чтобы проверить и исправить это:

  1. Войдите в ваш контейнер:
./launcher enter app
  1. Откройте консоль Rails:
rails c
  1. Проверьте текущее значение:
SiteSetting.port
  1. Если возвращается 80, очистите его:
SiteSetting.port = ""
  1. Затем пересоберите все сообщения и ресурсы для обновления ссылок:
Jobs.enqueue(:rebake_all_posts)