안녕하세요 여러분,
Cloudflare R2를 Discourse 포럼에서 업로드와 백업 모두에 성공적으로 설정한 경험과 단계를 공유하고자 합니다. Cloudflare R2를 Discourse와 함께 사용하려는 분들에게 도움이 되기를 바랍니다.
설정 개요:
- 플랫폼: Discourse (Bitnami 설치)
- 버킷: Cloudflare R2
- 커스텀 도메인: 파일을 공개적으로 서빙하기 위해 설정
- 구성: Discourse 사이트 설정을 통해 전적으로 수행 (환경 변수는 변경하지 않음)
단계별 가이드:
- Cloudflare R2 버킷 생성:
- Cloudflare 계정에 로그인하고 R2 저장소로 이동하세요.
- Discourse 업로드용 새 버킷을 생성하세요 (예:
forum-uploads). - 버킷 S3 API URL, 액세스 키 ID, 비밀 액세스 키를 기록해 두세요.
- CDN용 커스텀 도메인 설정:
- R2 버킷 콘텐츠를 공개적으로 서빙하려면 Cloudflare에서 커스텀 도메인을 생성하세요.
- 예를 들어, 저는
forumfiles.example.in을 사용했습니다. - DNS 설정을 Cloudflare에서 제공한 CNAME으로 지시하도록 구성해야 합니다. 제 도메인이 Cloudflare에 있으므로 이 과정은 자동으로 처리되었습니다.
- 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).
- s3_bucket: R2 버킷 이름 (예:
- enable s3 backups 및 enable s3 uploads가 체크되어 있는지 확인하세요.
- 권한 및 CORS 조정:
- R2 버킷을 비공개로 설정하고 CORS 정책을 구성하세요:
[
{
"AllowedHeaders": ["*"],
"AllowedMethods": ["GET", "POST", "PUT", "HEAD"],
"AllowedOrigins": ["*"],
"ExposeHeaders": ["ETag"],
"MaxAgeSeconds": 3000
}
]
- 이를 통해 CORS 문제 없이 업로드가 정상적으로 작동하도록 보장합니다.
- 설정 테스트:
- Discourse 포럼을 통해 테스트 파일이나 이미지를 업로드하여 업로드가 정상적으로 작동하는지 확인하세요.
- 파일이 커스텀 도메인(예:
https://forumfiles.example.in/original/1X/...)을 통해 접근 가능한지 확인하세요. - 백업을 확인하세요. 백업 실행에 성공했습니다. R2 버킷에서 교차 확인했으며 사이트 설정에도 목록으로 표시됩니다.
결론:
이 단계를 따름으로써 Cloudflare R2를 Discourse에 원활하게 통합하여 업로드와 백업을 효율적으로 처리할 수 있었습니다. 질문이 있거나 문제가 발생하면 자유롭게 질문해 주세요!