728x90

 


📌  ip란?

인터넷에 연결되어 있는 장치(컴퓨터, 스마트폰, 타블릿, 서버 등등)들은 각각의 장치를 식별할 수 있는 주소를 가지고 있는데 이를 ip라고 한다.

 

 

 

📌  도메인이란?

ip는 사람이 이해하고 기억하기 어렵기 때문에 이를 위해서 각 ip에 이름을 부여할 수 있게 했는데, 이것을 도메인이라고 한다.

(ex : naver.com -> 220.95.233.172 , daum.net -> 114.108.157.19)

 

  • 기본 도메인 : 처음에 신청한 기본 웹서버의 이름 (설정한 ip주소의 서버로 이동함)
  • 멀티 도메인 : 기본 도메인에 호스트 이름만 다르게 붙여서 사용하는 여러 개의 도메인
  • 서브 도메인 : 멀티 도메인과 거의 같으며, 도메인명으로 사용할 수 있는 문자의 개수 내에서 원하는 만큼의 호스트 이름을 얼마든지 붙여서 사용할 수 있는 도메인
  • 가상 도메인 : 기본 도메인 외에 별도의 도메인으로 기본 도메인과 같은 홈페이지에 연결된 도메인

 

 

여기서 서브도메인을 자세히 살펴보면

 

 

📌  서브 도메인이란

다음을 에시로 들어보자.

mail.naver.com

blog.naver.com

이 예시들은 naver.com이라는 도메인을 기반으로 한 멀티와 같은 개념이다.

서브 도메인에 따라 동일한 서버 내의 각각 다른 폴더에 접근할 수 있기 때문에 

서브 도메인으로 구분을 지어서 서로 다른 서비스를 제공할 수 있는 것이다.

 

 

 

 


 

 

 

 

📖  서브 도메인 추가 

서브 도메인을 적용시키기 위해서 DNS 정보를 설정해줘야 하기 때문에 가비아에 가서

서브 도메인을 적용해줄 도메인을 선택하고 설정을 해준다.

[My 가비아] -> [서비스 관리] -> [관리 툴] -> [DNS 정보] -> [도메인 연결:설정] -> [레코드 수정]

 

 

 

서브 도메인 설정을 위해서 타입은 CNAME으로 설정한다.

나는 서브도메인 2개의 이름을 sports와 webtoon으로 설정했다.

 

 

 

 

이때 A레코드 타입과 CNAME은 뭐가 다른 걸까? 

 

📌  A 레코드 vs. CNAME

A 레코드 타입과 CNAME 타입의 장단점은 명확하다. 

 

A 레코드의 장점은 한번의 요청으로 찾아갈 서버의 IP 주소를 한 번에 알 수 있다는 점이다. 반면 단점은 IP 주소가 자주 바뀌는 환경에서는 조금 번거로울 수 있다는 점이다. 예를 들어, 3.37.197.29 서버에서 jminie-stark.shop, sports.jminie-stark.shop, webtoon.jminie-stark.shop 등 여러 개의 서브 도메인들을 처리하고 있다고 하자. 각 서브 도메인들을 A 레코드로만 매핑시켰다면, 3.37.197.29라는 IP 주소가 3.38.999.99이라는 주소로 변경되었다면 모든 A 레코드를 찾아서 변경해야 한다. 

 

 

CNAME 레코드의 장점은 IP 주소가 자주 변경되는 환경에서 유연하게 대응할 수 있다는 점이다. 예를 들어, sports.jminie-stark.shop, webtoon.jminie-stark.shop 도메인 정보를 jminie-stark.shop이라는 주소로 매핑시키는 CNAME 레코드로 저장하고, jminie-stark.shop이라는 주소를 3.37.197.29 라는 IP 주소로 매핑시키는 A 레코드로 저장해 놨다면, 서버의 IP 주소가 바뀌었을 때 jminie-stark.shop의 A 레코드 정보만 변경시키면 된다.

 

 

CNAME 레코드의 단점은 실제 IP 주소를 얻을 때까지 여러번 DNS 정보를 요청해야 한다는 점이다. DNS 정보를 해석하는데 여러 번 요청이 필요하다는 점은 경우에 따라서 성능 저하를 유발할 수 있다.

 

 

 

 

 

 

Nginx 설정 파일 수정

우선 위에서 'sports'과 'webtoon'의 이름으로 서브 도메인을 만들었으니

Nginx의 기본 경로(루트 디렉터리)에 즉 /var/www/html에 각각 해당 이름으로 디렉터리를 생성한다.

$ cd /var/www/html
$ sudo mkdir sports
$ sudo mkdir webtoon

디렉터리를 생성해준 후 각 디렉터리 안에 서브 도메인에 접근할 때 보일 html 파일을 만들어준다.

  • sports 디렉터리에는 sports.html
  • webtoon 디렉터리에는 webtoon.html

 

 

sports.html

<html>
	<head>
		<title>sports!</title>
	</head>
	<body>
		<h1>sports page</h1>
	</body>
</html>

 

webtoon.html

<html>
	<head>
		<title>webtoon!</title>
	</head>
	<body>
		<h1>webtoon page</h1>
	</body>
</html>

 

 

 

 

 

Nginx 기본 설정 파일 /etc/nginx/sites-available/default로 들어가서 서브 도메인에 대한 추가 설정을 해준다.

$ sudo vim /etc/nginx/sites-available/default

 

위의 코드는 원래 기존에 있었던 server과 겹치지 않게 중괄호를 잘 보고 작성해준다.

 

 

 

 

nginx의 설정 파일을 수정했으므로 restart해준다.

$ sudo service nginx restart

 

주소창에 서브 도메인을 검색해보고 해당 서브 도메인 안에 지정된 html 파일들이 잘 나오는지 확인해준다.

sports.jminie-stark.shop

 

 

webtoon.jminie-stark.shop

 

다음과 같이 서브도메인이 잘 나오는 것을 확인할 수 있다.

 

 

 

 

 

 

📖  Domain Redirection 적용

우리가 어떠한 페이지에 들어가고 싶을 때 그 페이지의 ip주소를 주소창에 입력해도 자동으로 도메인으로 연결되는 경우가 많다.

이렇듯 아이피 주소를 입력을 하더라도 도메인으로 연결되도록 적용하는 것이 Domain Redirection이다.

보통 Ip to Domain Redirection이라고 한다.

 

Nginx 웹서버에 설정하는 것이므로

Nginx의 설정 디렉터리인 /etc/nginx/sites-available/default로 이동한다.

$ sudo vim /etc/nginx/sites-available/default

 

다음과 같이 코드를 추가해준다. 마찬가지로 다른 server와 코드가 겹치지 않도록 중괄호에 주의한다.

 

 

 

마찬가지로 nginx의 설정 파일을 수정했으므로 restart 해준다.

$ sudo service nginx restart

 

 

 

 

주소창에 이번엔 도메인이 아닌 ip주소를 입력해본다.

 

다음과 같이 ip주소가 도메인으로 잘 연결되는 것을 볼 수 있다.

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

Refernece:

https://luminitworld.tistory.com/86?category=975147

https://velog.io/@banjjoknim/서브-도메인-및-Redirection-적용

 

복사했습니다!