deployment

커스텀 도메인

DNS 설정과 도메인 연결 가이드

커스텀 도메인

CF Pages 프로젝트에 커스텀 도메인을 연결하는 방법을 설명합니다. Modfolio 생태계의 2-프로젝트 모델(앱 + 랜딩)에 맞는 도메인 구성을 다룹니다.


CF Pages 커스텀 도메인 설정

기본적으로 CF Pages 프로젝트는 <project-name>.pages.dev 도메인으로 배포됩니다. 실제 서비스에는 커스텀 도메인을 연결해야 합니다.

경로: CF Dashboard → Workers & Pages → <프로젝트> → Custom domains → Set up a custom domain

  1. Custom domains 탭에서 Set up a custom domain 클릭
  2. 연결할 도메인 입력 (예: naviaca.com)
  3. DNS 레코드 자동 생성 확인 → Activate domain 클릭

Cloudflare DNS를 사용하는 도메인이면 CNAME이 자동 추가됩니다. 외부 DNS는 수동 설정이 필요합니다.


DNS CNAME 레코드 설정

CF Pages의 커스텀 도메인은 CNAME 레코드로 연결됩니다.

CF Dashboard → DNS → Records → Add record에서 수동으로 추가할 수 있습니다.

타입 Name Target Proxy
CNAME @ (루트) <project>.pages.dev Proxied
CNAME www <project>.pages.dev Proxied

참고: 루트 도메인(@)의 CNAME은 Cloudflare가 CNAME Flattening을 적용합니다. 일반 DNS에서는 루트에 CNAME을 설정할 수 없지만, Cloudflare DNS는 이 제약을 해결합니다.

외부 DNS(Route 53 등)를 사용하는 경우, CF Pages가 제공하는 TXT 레코드로 소유권을 먼저 검증한 뒤 CNAME을 추가합니다. 단, 외부 DNS에서는 Cloudflare 프록시 기능을 사용할 수 없으므로 Cloudflare DNS 사용을 권장합니다.


2-프로젝트 모델 도메인 구성

Modfolio 생태계에서 각 브랜드는 두 개의 독립 프로젝트로 분리됩니다.

프로젝트 도메인 역할 프레임워크
앱 domain.com SaaS 애플리케이션 SvelteKit / SolidStart 등
랜딩 www.domain.com 마케팅 랜딩 사이트 Astro

CF Pages 프로젝트 매핑

하나의 브랜드에 두 개의 CF Pages 프로젝트를 생성합니다.

# 앱 프로젝트
naviaca → naviaca.com

# 랜딩 프로젝트
naviaca-landing → www.naviaca.com

DNS 레코드 구성

# 앱 (naked 도메인)
@     CNAME  naviaca.pages.dev          (Proxied)

# 랜딩 (www 서브도메인)
www   CNAME  naviaca-landing.pages.dev  (Proxied)

landing-first 모드인 앱은 naked 도메인 접속 시 www로 302 리다이렉트합니다 (naviaca.com → www.naviaca.com/home). 앱 서버 사이드 또는 CF Bulk Redirects로 처리합니다.


SSL/TLS 인증서

Cloudflare Pages에 커스텀 도메인을 연결하면 SSL/TLS 인증서가 자동으로 발급됩니다.

  • 인증서 유형: Cloudflare Universal SSL (무료)
  • 갱신: 자동 갱신 (만료 30일 전)
  • 커버리지: 루트 도메인 + *.domain.com 와일드카드

별도의 인증서 구매나 수동 설치가 필요 없습니다. SSL 모드는 CF Dashboard → SSL/TLS → Overview에서 **Full (strict)**으로 설정하세요.


인프라 앱 도메인 설정

인프라 앱은 *.modfolio.io 서브도메인을 사용합니다. 2-프로젝트 모델은 적용하지 않습니다.

앱 도메인 CF Pages 프로젝트
modfolio-connect login.modfolio.io modfolio-connect
modfolio-admin admin.modfolio.io modfolio-admin
modfolio-dev dev.modfolio.io modfolio-dev
modfolio-docs docs.modfolio.io modfolio-docs
modfolio-on on.modfolio.io modfolio-on

DNS 레코드 구성

와일드카드(*) CNAME 대신 각 서브도메인별 개별 CNAME을 설정합니다.

# modfolio.io DNS 레코드
login   CNAME  modfolio-connect.pages.dev   (Proxied)
admin   CNAME  modfolio-admin.pages.dev     (Proxied)
dev     CNAME  modfolio-dev.pages.dev       (Proxied)
docs    CNAME  modfolio-docs.pages.dev      (Proxied)
on      CNAME  modfolio-on.pages.dev        (Proxied)

참고: 와일드카드 CNAME(* CNAME *.pages.dev)은 CF Pages에서 지원하지 않습니다. 각 서브도메인을 개별 CF Pages 프로젝트의 커스텀 도메인으로 등록해야 합니다.


도메인 검증 절차

커스텀 도메인을 추가한 뒤, Cloudflare가 도메인 소유권을 검증합니다.

검증 상태

상태 설명
Initializing 검증 시작
Pending DNS 전파 대기 중
Active 검증 완료, 도메인 활성화
Error DNS 설정 오류, 재설정 필요

검증 실패 시 확인 사항

  1. DNS 레코드가 올바른 <project>.pages.dev를 가리키는지 확인
  2. 다른 CF Pages/Workers 프로젝트에 동일 도메인이 등록되어 있지 않은지 확인
  3. DNS 전파에 최대 48시간 소요 가능 (Cloudflare DNS 사용 시 즉시)
  4. CAA 레코드가 인증서 발급을 차단하고 있지 않은지 확인 (dig domain.com CAA +short)

다음 단계

ESC

검색어를 입력하세요