가비아 도메인을 Cloudflare로 옮겨 티스토리와 서브도메인 서비스 함께 쓰기
가비아에서 산 도메인으로 티스토리 블로그를 운영하고 있었습니다. 여기에 직접 만든 웹 서비스를 서브도메인.내도메인.kr 형태로 붙이고 싶었습니다. 블로그는 그대로 두고 말이죠. Cloudflare를 DNS로 쓰면 이게 깔끔하게 됩니다. 실제로 하면서 막혔던 부분까지 순서대로 정리합니다.
목표 구성
www.ideality.kr→ 티스토리 블로그 (그대로)ideality.kr→ www로 이동goodluck.ideality.kr→ Cloudflare Workers로 만든 웹게임
1단계: Cloudflare에 도메인 추가
- Cloudflare 대시보드 → Add a domain → 도메인 입력 → Free 플랜 선택
- Cloudflare가 기존 DNS 레코드를 자동으로 스캔합니다. 티스토리용 레코드(
wwwCNAMEhost.tistory.io등)가 잡혔는지 확인합니다. - 마지막 화면에 Cloudflare 네임서버 2개가 나옵니다. 계정마다 이름이 다르므로 반드시 이 화면에 나온 값을 씁니다.
주의: 티스토리 레코드는 프록시(주황 구름)를 꺼서 DNS only로 두는 것이 안전합니다. 티스토리가 개인 도메인용 인증서를 직접 발급하기 때문에, 프록시를 켜면 인증서 발급이 꼬일 수 있습니다.
2단계: 가비아에서 네임서버 변경
- My가비아 → 도메인 관리 → 해당 도메인 → 네임서버 탭 → 설정
- 1차, 2차에 Cloudflare 네임서버 입력
- 소유자 인증(휴대폰 또는 이메일) 후 적용
가비아의 "DNS 관리" 메뉴와 헷갈리기 쉽습니다. 네임서버를 Cloudflare로 바꾸면 가비아 DNS 관리에 있는 레코드는 더 이상 쓰이지 않습니다. 이후 모든 레코드는 Cloudflare에서 관리합니다. .kr 도메인 기준으로 전파는 몇 분이면 끝났습니다.
3단계: Worker에 서브도메인 연결
Workers & Pages → 해당 Worker → Domains 탭 → Add Domain → 도메인 선택 → 서브도메인에 goodluck 입력. DNS 레코드와 인증서가 자동으로 만들어집니다. 설정 파일로 관리하고 싶다면 wrangler.jsonc에 이렇게 적어도 됩니다.
"routes": [
{ "pattern": "goodluck.ideality.kr", "zone_name": "ideality.kr", "custom_domain": true }
]
이때 workers_dev를 명시하지 않으면 기존 *.workers.dev 주소가 꺼집니다. 두 주소를 모두 쓰려면 "workers_dev": true를 같이 적어야 합니다.
막혔던 부분 3가지
1) "Can't infer zone from route"
도메인이 다른 Cloudflare 계정에 들어가 있으면 이 에러가 납니다. 저는 개인 계정에 예전에 추가해 둔 도메인이 남아 있었습니다. 기존 계정에서 도메인을 삭제하고, Worker가 있는 계정에 다시 추가해서 해결했습니다. Cloudflare는 계정마다 네임서버 쌍이 달라서, 계정을 옮기면 가비아 네임서버도 다시 바꿔야 합니다.
2) workers.dev 서브도메인 등록 오류
새 계정에서 처음 배포하면 workers.dev 서브도메인을 등록하라고 묻습니다. 여기에는 내이름 부분만 입력해야 합니다. goodluck.내이름.workers.dev 전체를 넣으면 "invalid"가 뜹니다.
3) 루트 도메인에서 "유효한 인증서를 찾을 수 없습니다"
스캔 결과 ideality.kr(루트)이 티스토리 IP를 가리키는 A 레코드로 잡혀 있었는데, https로 들어가면 티스토리 인증서 오류 화면이 나왔습니다. 티스토리는 블로그 주소로 등록한 www에만 인증서를 발급하기 때문입니다. 해결 방법은 루트를 Cloudflare가 받아서 www로 보내는 것입니다.
- DNS에서 루트 레코드를 CNAME
host.tistory.io로 바꾸고 프록시 켜기 (Cloudflare 인증서로 https 응답) - Rules → Redirect Rules → 새 규칙: 조건
http.host eq "ideality.kr", 동작 Dynamicconcat("https://www.ideality.kr", http.request.uri.path), 301, 쿼리 문자열 유지
이제 ideality.kr로 들어와도 https로 블로그가 열립니다.
정리
네임서버를 Cloudflare로 옮기는 것만 한 번 해두면, 서브도메인을 늘리는 건 몇 번의 클릭이면 됩니다. 블로그는 그대로 두고 그 옆에 서비스를 하나씩 붙여 나갈 수 있습니다. 이렇게 붙인 첫 번째 서비스가 goodluck.ideality.kr입니다.