카테고리 없음

가비아 도메인을 Cloudflare로 옮겨 티스토리와 서브도메인 서비스 함께 쓰기

IIRN 2026. 11. 4. 02:37

가비아에서 산 도메인으로 티스토리 블로그를 운영하고 있었습니다. 여기에 직접 만든 웹 서비스를 서브도메인.내도메인.kr 형태로 붙이고 싶었습니다. 블로그는 그대로 두고 말이죠. Cloudflare를 DNS로 쓰면 이게 깔끔하게 됩니다. 실제로 하면서 막혔던 부분까지 순서대로 정리합니다.

목표 구성

  • www.ideality.kr → 티스토리 블로그 (그대로)
  • ideality.kr → www로 이동
  • goodluck.ideality.kr → Cloudflare Workers로 만든 웹게임

1단계: Cloudflare에 도메인 추가

  1. Cloudflare 대시보드 → Add a domain → 도메인 입력 → Free 플랜 선택
  2. Cloudflare가 기존 DNS 레코드를 자동으로 스캔합니다. 티스토리용 레코드(www CNAME host.tistory.io 등)가 잡혔는지 확인합니다.
  3. 마지막 화면에 Cloudflare 네임서버 2개가 나옵니다. 계정마다 이름이 다르므로 반드시 이 화면에 나온 값을 씁니다.

주의: 티스토리 레코드는 프록시(주황 구름)를 꺼서 DNS only로 두는 것이 안전합니다. 티스토리가 개인 도메인용 인증서를 직접 발급하기 때문에, 프록시를 켜면 인증서 발급이 꼬일 수 있습니다.

2단계: 가비아에서 네임서버 변경

  1. My가비아 → 도메인 관리 → 해당 도메인 → 네임서버 탭 → 설정
  2. 1차, 2차에 Cloudflare 네임서버 입력
  3. 소유자 인증(휴대폰 또는 이메일) 후 적용

가비아의 "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로 보내는 것입니다.

  1. DNS에서 루트 레코드를 CNAME host.tistory.io로 바꾸고 프록시 켜기 (Cloudflare 인증서로 https 응답)
  2. Rules → Redirect Rules → 새 규칙: 조건 http.host eq "ideality.kr", 동작 Dynamic concat("https://www.ideality.kr", http.request.uri.path), 301, 쿼리 문자열 유지

이제 ideality.kr로 들어와도 https로 블로그가 열립니다.

정리

네임서버를 Cloudflare로 옮기는 것만 한 번 해두면, 서브도메인을 늘리는 건 몇 번의 클릭이면 됩니다. 블로그는 그대로 두고 그 옆에 서비스를 하나씩 붙여 나갈 수 있습니다. 이렇게 붙인 첫 번째 서비스가 goodluck.ideality.kr입니다.