Discourse를 위한 Caddy와 Cloudflare 설정

안녕하세요 여러분,

저는 community.website.com에 Discourse를, website.com에는 WordPress를 설치했습니다. Caddy를 리버스 프록시로 사용하고 있으며, Let’s Encrypt가 SSL을 관리하고 있습니다. 초기에 몇 가지 어려움이 있었지만, SSL과 리다이렉트를 포함한 모든 구성이 원활하게 작동하도록 설정했습니다. 리버스 프록시를 다른 방식으로 설정하려는 시도가 수없이 실패한 끝에 이 구성을 선택하게 되었습니다. 저에게 근본적인 문제는 Docker나 Discourse에 대한 사전 경험이 전혀 없었다는 점이었습니다.

또한 캐싱과 Discourse 간에 문제가 발생할 수 있다는 점도 알고 있습니다. 따라서 문제를 피하기 위해 설정을 간소화하거나 특정 규칙을 적용하는 것이 더 나은 방법일 수 있습니다.

현재 구성:

  • Discourse: community.website.com에서 Docker를 통해 실행 중.
  • WordPress: website.com에 설치됨.
  • Caddy: 리버스 프록시 및 Let’s Encrypt SSL 처리.
  • Cloudflare: DNS, 방화벽, CDN 설정 중.

문제점:

Cloudflare DNS를 프록시 없이(단순 DNS만) 사용할 경우 모든 것이 완벽하게 작동합니다. Caddy가 Let’s Encrypt SSL을 관리하며 문제가 없습니다.

그러나 Cloudflare DNS에서 프록시를 활성화하면 연결이 실패하며 Cloudflare에서 “Website Down” 오류가 발생합니다. 루트 도메인과 서브도메인 모두에 대해 http://를 사용하도록 Caddyfile을 업데이트하고, Cloudflare에서 여러 SSL 구성(Flexible, Full, Full Strict)을 시도해 보았지만 연결을 확립하지 못했습니다.

Caddy와 SSL을 사용하는 Cloudflare이 Discourse와 잘 호환되도록 어떻게 구성해야 할까요?

제안해 주시면 감사하겠습니다!

Cloudflare의 CDN 및 보안 서비스를 사용 중인 경우, 원본 서버에 자체 SSL 인증서를 구성할 필요가 없습니다. 대신 Cloudflare 대시보드의 SSL/TLS 설정으로 이동하여 'Origin Certificate(오리진 인증서)'를 생성하세요. 이 인증서는 원본 서버에서 Cloudflare로 프록시된 트래픽을 보호합니다. 이 Origin Certificate를 원본 서버에 설치하면 모든 구성이 정상적으로 작동합니다.

호스트 머신에서 Caddy와 WordPress를 실행 중이신가요, 아니면 Docker 컨테이너로 실행 중이신가요?

감사합니다 @shannon1024 ! 처음 해보는 거라 그랬는데, 부드럽게 잘 작동하고 있습니다.

Docker에서 실행 중입니다. Discourse 디렉터리 안에 인증서를 위한 디렉터리를 만들었습니다. 첫 시도에 바로 작동해서 놀랐습니다 :smile:

5단계: SSL 인증서를 사용하도록 Discourse 설정

  1. SSL 인증서를 사용하도록 Discourse NGINX 구성을 편집합니다. 일반적으로 이 파일은 /etc/nginx/conf.d/discourse.conf에 위치하거나, Docker를 사용하는 경우 /var/discourse/containers/ 디렉터리 내에 있습니다.

  2. 서버 블록에 다음 줄을 수정하거나 추가합니다:

Secure Your Discourse Forum with Free SSL/HTTPS from CloudFlare

CF 오리지인 서버를 설정하고 있는데, 필요한 수정 사항을 적용하기 위해 discourse.conf 파일의 위치를 찾지 못해 이 단계에서 막혀 있습니다. 이 파일은 보통 어디에 있나요?

제가 확인한 바로는, 설명서가 완전히 정확하지 않은 것 같습니다. 해당 경로에서 아무것도 찾을 수 없었거든요.

도움을 주시면 감사하겠습니다.