Cloudflare R2: 설정 안내 및 구성 오류 처리

안녕하세요 여러분,

Cloudflare R2를 Discourse 포럼에서 업로드와 백업 모두에 성공적으로 설정한 경험과 단계를 공유하고자 합니다. Cloudflare R2를 Discourse와 함께 사용하려는 분들에게 도움이 되기를 바랍니다.

설정 개요:

  • 플랫폼: Discourse (Bitnami 설치)
  • 버킷: Cloudflare R2
  • 커스텀 도메인: 파일을 공개적으로 서빙하기 위해 설정
  • 구성: Discourse 사이트 설정을 통해 전적으로 수행 (환경 변수는 변경하지 않음)

단계별 가이드:

  1. Cloudflare R2 버킷 생성:
  • Cloudflare 계정에 로그인하고 R2 저장소로 이동하세요.
  • Discourse 업로드용 새 버킷을 생성하세요 (예: forum-uploads).
  • 버킷 S3 API URL, 액세스 키 ID, 비밀 액세스 키를 기록해 두세요.
  1. CDN용 커스텀 도메인 설정:
  • R2 버킷 콘텐츠를 공개적으로 서빙하려면 Cloudflare에서 커스텀 도메인을 생성하세요.
  • 예를 들어, 저는 forumfiles.example.in을 사용했습니다.
  • DNS 설정을 Cloudflare에서 제공한 CNAME으로 지시하도록 구성해야 합니다. 제 도메인이 Cloudflare에 있으므로 이 과정은 자동으로 처리되었습니다.
  1. Discourse 사이트 설정 구성:
    • s3_bucket: R2 버킷 이름 (예: forum-uploads).
    • s3_region: US East (N. Virginia)로 설정합니다. 자동 옵션이 없었습니다.
    • s3_endpoint: Cloudflare에서 제공한 버킷 S3 API URL을 사용하세요 (예: https://<your-bucket-unique-id>.r2.cloudflarestorage.com).
    • s3_access_key_id: R2 액세스 키 ID.
    • s3_secret_access_key: R2 비밀 액세스 키.
    • s3_cdn_url: CDN용 커스텀 도메인 (예: https://forumfiles.example.in).
  • enable s3 backups 및 enable s3 uploads가 체크되어 있는지 확인하세요.
  1. 권한 및 CORS 조정:
  • R2 버킷을 비공개로 설정하고 CORS 정책을 구성하세요:
[
  {
      "AllowedHeaders": ["*"],
      "AllowedMethods": ["GET", "POST", "PUT", "HEAD"],
      "AllowedOrigins": ["*"],
      "ExposeHeaders": ["ETag"],
      "MaxAgeSeconds": 3000
  }
]
  • 이를 통해 CORS 문제 없이 업로드가 정상적으로 작동하도록 보장합니다.
  1. 설정 테스트:
  • Discourse 포럼을 통해 테스트 파일이나 이미지를 업로드하여 업로드가 정상적으로 작동하는지 확인하세요.
  • 파일이 커스텀 도메인(예: https://forumfiles.example.in/original/1X/...)을 통해 접근 가능한지 확인하세요.
  • 백업을 확인하세요. 백업 실행에 성공했습니다. R2 버킷에서 교차 확인했으며 사이트 설정에도 목록으로 표시됩니다.

결론:

이 단계를 따름으로써 Cloudflare R2를 Discourse에 원활하게 통합하여 업로드와 백업을 효율적으로 처리할 수 있었습니다. 질문이 있거나 문제가 발생하면 자유롭게 질문해 주세요!