Настройка Caddy и Cloudflare для Discourse

Всем привет,

Я настроил Discourse на community.website.com и WordPress на website.com. В качестве обратного прокси использую Caddy, а SSL управляется через Let’s Encrypt. После ряда первоначальных трудностей всё заработало стабильно, включая SSL и перенаправления. К такому решению я пришёл после множественных неудачных попыток настроить обратный прокси другими способами. Основная проблема заключалась в отсутствии у меня опыта работы с Docker и Discourse.

Также я понимаю, что могут возникать проблемы с кэшированием в связке с Discourse, поэтому, возможно, лучше минимизировать настройки или внедрить определённые правила, чтобы избежать сбоев.

Текущая конфигурация:

  • Discourse: работает через Docker на community.website.com.
  • WordPress: установлен на website.com.
  • Caddy: выполняет функции обратного прокси и управляет SSL через Let’s Encrypt.
  • Cloudflare: используется для DNS, файрвола и CDN.

Проблема:

При использовании DNS Cloudflare без прокси (только для DNS) всё работает идеально — Caddy успешно управляет SSL через Let’s Encrypt, и никаких проблем нет.

Однако при включении прокси в DNS Cloudflare соединение не устанавливается, и появляется ошибка «Website Down» от Cloudflare. Я обновил файл Caddyfile, указав http:// как для корня, так и для поддоменов, и пробовал различные настройки SSL в Cloudflare (Flexible, Full и Full Strict), но так и не смог наладить соединение.

Вопрос: как правильно настроить эту связку, чтобы Caddy, Cloudflare с SSL и Discourse работали корректно?

Буду благодарен за любые предложения!

Если вы используете CDN и сервисы безопасности Cloudflare, вам не нужно настраивать собственный SSL-сертификат на вашем исходном сервере. Вместо этого перейдите в настройки SSL/TLS в панели управления Cloudflare и создайте «Origin Certificate» (сертификат для исходного сервера). Этот сертификат защитит трафик, передаваемый с вашего исходного сервера через Cloudflare. Установите этот Origin Certificate на ваш исходный сервер, и всё будет работать.

Вы запускаете Caddy и WordPress непосредственно на хост-машине или в контейнерах Docker?

Спасибо @shannon1024! В первый раз, но всё прошло гладко и теперь работает.

Запуск в Docker. Создал папку для сертификатов внутри директории Discourse. Был приятно удивлен, что всё заработало с первого раза :smile:

Шаг 5: Настройка Discourse для использования SSL-сертификата

  1. Отредактируйте конфигурационный файл NGINX для Discourse, чтобы использовать SSL-сертификат. Обычно этот файл находится по пути /etc/nginx/conf.d/discourse.conf или в директории /var/discourse/containers/, если используется Docker.

  2. Измените или добавьте следующие строки в блок server:

https://developer.tenten.co/discourse-with-cloudflare-ssl

Я пытаюсь настроить сервер-источник Cloudflare и застрял на этом этапе из-за поиска файла discourse.conf, чтобы внести необходимые изменения. Где он обычно располагается?

На мой взгляд, инструкции здесь не совсем верны, так как в указанных местах я ничего не нашел.

Заранее спасибо за любую помощь.