Cloudflare 도메인 추가
- dash.cloudflare.com 로그인
- Add a Site → 도메인 입력
- 플랜 선택 (Free 플랜으로 충분)
- Cloudflare가 기존 DNS 레코드 자동 스캔
- 도메인 레지스트라에서 네임서버 변경:
Before: ns1.yourprovider.com
After: aria.ns.cloudflare.com
ben.ns.cloudflare.com네임서버 반영에 최대 24시간 소요됩니다.
DNS 레코드 설정
# Cloudflare API로 레코드 관리
ZONE_ID="your_zone_id"
API_TOKEN="your_api_token"
# A 레코드 추가
curl -X POST "https://api.cloudflare.com/client/v4/zones/$ZONE_ID/dns_records" \
-H "Authorization: Bearer $API_TOKEN" \
-H "Content-Type: application/json" \
--data '{
"type": "A",
"name": "example.com",
"content": "1.2.3.4",
"proxied": true,
"ttl": 1
}'
# CNAME 레코드
curl -X POST "https://api.cloudflare.com/client/v4/zones/$ZONE_ID/dns_records" \
-H "Authorization: Bearer $API_TOKEN" \
-H "Content-Type: application/json" \
--data '{
"type": "CNAME",
"name": "www",
"content": "example.com",
"proxied": true
}'주요 레코드 예시
| 타입 | 이름 | 값 | 프록시 |
|---|---|---|---|
| A | @ (루트) | 서버 IP | 켜기 |
| A | www | 서버 IP | 켜기 |
| CNAME | api | api-server.example.com | 켜기 |
| MX | @ | mail.example.com | 끄기 |
| TXT | @ | v=spf1 ... | 끄기 |
오렌지 클라우드 (프록시) 모드
- 주황색 구름 ON: Cloudflare CDN + DDoS 보호 + 실제 서버 IP 숨김
- 회색 구름 OFF: DNS만, 실제 IP 노출
이메일, FTP, SSH 레코드는 반드시 프록시 OFF
SSL/TLS 설정
대시보드 → SSL/TLS → 모드 선택:
| 모드 | 설명 | 권장 |
|---|---|---|
| Off | HTTP만 | ✗ |
| Flexible | CF↔사용자만 암호화, CF↔서버는 HTTP | ✗ |
| Full | CF↔서버도 암호화, 인증서 미검증 | 조건부 |
| Full (Strict) | 유효한 인증서 필요 | ✓ |
권장: Full (Strict) + 서버에 Let's Encrypt 설치Page Rules
대시보드 → Rules → Page Rules (무료 3개):
HTTP → HTTPS 리다이렉트
URL: http://example.com/*
Setting: Always Use HTTPS캐시 설정
URL: example.com/static/*
Setting: Cache Level = Cache Everything
Edge Cache TTL = 1 month특정 경로 캐시 무시
URL: example.com/api/*
Setting: Cache Level = BypassWAF 기본 설정 (무료)
대시보드 → Security → WAF:
- Security Level: Medium (기본)
- Bot Fight Mode: ON (봇 차단)
- Challenge Passage: 30분
IP 차단
대시보드 → Security → WAF → Tools → IP Access Rules:
Value: 203.0.113.0/24
Action: BlockCloudflare Tunnel (내부 서버 노출)
서버 방화벽 포트 오픈 없이 HTTPS로 서비스 노출:
# cloudflared 설치
curl -L --output cloudflared.deb \
https://github.com/cloudflare/cloudflared/releases/latest/download/cloudflared-linux-amd64.deb
sudo dpkg -i cloudflared.deb
# 인증 및 터널 생성
cloudflared tunnel login
cloudflared tunnel create my-tunnel
cloudflared tunnel route dns my-tunnel app.example.com
# 설정 파일
# ~/.cloudflared/config.yml
tunnel: <tunnel-id>
credentials-file: /root/.cloudflared/<tunnel-id>.json
ingress:
- hostname: app.example.com
service: http://localhost:3000
- service: http_status:404
cloudflared service install이 가이드는 AI 도구를 활용해 초안을 구성하고 사람이 명령어·문맥을 검토해 발행했습니다. 운영체제와 도구 버전에 따라 결과가 달라질 수 있으므로 적용 전 공식 문서를 함께 확인하세요. 오류를 발견하시면 이메일로 제보해 주세요.
질문 & 답변 (Q&A)
이 가이드에 대해 궁금한 점을 질문해보세요. 확인 후 답변드립니다.