DNS 기본 설정

구분의미비유예시 / 세부 유형
1. 대상 도메인
(Target Domain / Zone)
내가 소유하고 있어서 설정을 변경하려는 기준이 되는 ‘기본 도메인’건물 전체의 이름
(예: “넥슨 타워”)
mygame.com, neople.co.kr
2. 레코드명
(Record Name / Host / Name)
대상 도메인 앞에 붙여서 사용하는 서브도메인(Subdomain) 이름건물 안의 특정 부서나 호실
(예: “안내데스크”, “영업팀”)
  • www (www.mygame.com)
  • blog (blog.mygame.com)
  • @ 또는 빈칸 (아무것도 안 붙은 본래 주소)
3. 레코드 타입
(Record Type)
이 레코드가 어떤 목적을 가진 **‘데이터의 종류’**인지를 지정연락처의 종류
(예: “내선번호”, “외부 직통번호”)
  • A (Address): 목적지가 숫자로 된 IPv4 주소일 때
  • CNAME: 목적지가 다른 도메인 주소(영문)일 때
  • MX: 이메일을 받을 메일 서버를 지정할 때
  • TXT: 소유권 인증 등의 텍스트를 입력할 때
4. 레코드 데이터
(Record Data / Value / Answer)
최종적으로 브라우저나 시스템이 찾아가야 할 실제 목적지 값실제 전화번호
(예: “02-123-4567”)
  • 192.168.1.1 (A 타입 예시)
  • ghs.googlehosted.com (CNAME 타입 예시)
  • A 레코드는 도메인을 **직접적인 IP 주소(IPv4)**로 연결할 때 사용
  • CNAME 레코드는 도메인을 **다른 도메인 이름(별칭)**으로 연결할 때 사용
  • 루트 도메인(아무것도 붙지 않은 mygame.com)을 표시할 때는 관례적으로 @ 기호를 레코드명에 사용
대상 도메인레코드명 (서브도메인)레코드 타입레코드 데이터 (목적지)설정이 의미하는 바
mygame.comblogA12.34.56.78blog.mygame.com 에 접속하면 12.34.56.78 IP로 연결해 줘
mygame.com@A11.22.33.44아무것도 안 붙은 mygame.com 에 접속하면 11.22.33.44 로 연결해 줘
mygame.commailCNAMEmail.google.commail.mygame.com 에 접속하면 구글 메일 서버 주소로 돌려보내 줘

DNS 1회 설정으로 서브도메인 라우팅 구현

  • 컨테이너마다 DNS 설정 할 필요 없음
  1. DNS 와일드카드 레코드 등록

레코드명에 별표(*)를 사용하여 하위의 모든 서브도메인이 Nginx 서버를 바라보도록 설정.

대상 도메인레코드명 (서브도메인)레코드 타입레코드 데이터 (목적지)
mygame.com* (또는 *.da1)ANginx 서버 IP
  • 와일드카드 룰셋
    • 와일드카드(*)는 항상 가장 왼쪽 레이블에 단독으로 존재해야 한다.
      • 레코드명에 *.da1을 입력하는 것은 가능, 권장됨
      • 이 한줄로 app1.da1.mygame.com, api.da1.mygame.com 등 하위 도메인 전체를 하나의 Nginx 서버로 받고 처리 가능
    • 문자열 일부 검색(예: app*.da1)처럼 작동하는 것은 불가능함.
  1. nginx 쪽 설정
# 1번 컨테이너로 가는 설정
server {
    listen 80;
    server_name app1.da1.mygame.com;  # 브라우저 주소창에 이 도메인이 적혀있었다면!
 
    location / {
        # 도커 내부망에 있는 app1 컨테이너로 연결해라
        proxy_pass http://internal-app1-container:8080; 
    }
}
 
# 2번 컨테이너로 가는 설정
server {
    listen 80;
    server_name app2.da1.mygame.com;  # 브라우저 주소창에 이 도메인이 적혀있었다면!
 
    location / {
        # 도커 내부망에 있는 app2 컨테이너로 연결해라
        proxy_pass http://internal-app2-container:3000; 
    }
}

path 보다는 서브도메인

path 방식(/app1)보다는 서브도메인 방식(app1.mygame.com)이 정적 자원(CSS/JS/이미지) 경로가 깨지지 않아 압도적으로 권장.

구분서브도메인 방식 (app1.mygame.com)Path 방식 (mygame.com/app1)
설정 편의성매우 편리 (Nginx 설정만으로 즉시 분기 가능)번거로움 (Nginx 및 웹 앱 내부 경로 수정 필요)
정적 자원 경로
(CSS / JS / Image)
🟢 안전함
앱이 최상단 루트(/)를 기준으로 작동하므로 경로가 깨지지 않음
깨짐 발생 (404 에러)
보통 앱 내부 정적 경로가 / 기준으로 설계되어 있어 /app1 하위에서 경로 유실됨
앱 수정 여부독자적인 도메인처럼 인식하므로 웹 앱 수정 불필요빌드 시 Base URL(Public Path)을 일일이 /app1로 수정 및 재빌드해야 함