외부활동/UMC 2기 서버[Node]

3주차 - 도메인/서브 도메인 구매 및 연결

softmoca__ 2024. 1. 24. 18:49
목차

현실에서의 위도 경도를 도로명 주소로 인간이 알기 쉽게 표현한것 처럼 IT세계에서도 ip를 인간이 알기 쉽게 표현한것을 도메인이다.

휴대폰으로 네이버에 접속을 하면 주소가 위 사진 처럼 m.이 붙은 url로 나타난다.

이것이 바로 서브 도메인이다.

서브 도메인은 보조 도메인으로 url을 전송하거나 ip주소 디렉토리로 포워딩되는 도메인 이름의 확장자이다.

 

서브 도메인은 보조 도메인으로 url을 전송하거나 ip주소 디렉토리로 포워딩되는 도메인 이름의 확장자이다.

ip는 도메인으로 연결이 되서 http는 https로 연결이 된다.==>리다이렉션 처리가 되어있다.

 

1.도메인 구입하여 적용하기

가비아 사이트에 접속한뒤 내가 원하는 도메인을 구매한다.

www.moca9012.shop   이라는 도메인을 500원에 구임(.com같은 것은 비싸고 .shop처럼 값싼걸로 구매)

 

이후 my 페이지에서 DNS관리툴로 들어가고 해당 도메인의 설정을 클릭하여 레코드 수정을 한다.

 

 

첫번 쨰 줄의 @은 www를 따로 입력 하지 않아도 바로 연결된 ip로 보내준다.

예로 들어 naver.com를 해도 네이버의 ip가 연결이 되서 네이버의 페이지가 나오게 된다.

 

서버 도메인으로 dev개발 서버와 prod실제 배포 서버로 만들었다.

타입은 CNAME으로 하고 값/위치에는 도메인의 이름을 적고 그뒤에 꼭 . 을 붙여준다.

 

도메인과 IP를 연결하기 위해서는 서버 설정 파일에서 서버 이름을 추가해주어야 한다.

다시 /etc/nginx/sites-available에 위치한 nginx 설정 파일로 들어간다.

sudo vi default

46번째 서버네임 라인에서 해당 도메인을 적어준다.

이전에 했던 것과 마찬가지로 test하고 restart를 진행해준다

그럼 이제 도메인으로도 접속이 가능해진다.

 

 

2.서브 도메인 적용하기

이제 서브 도메인을 연결하여 각각 다른 페이지를 띄워보려한다.

다른 페이지를 띄우기 위해 nginx의 기본 폴더(/var/www/html)에 dev와 prod 폴더를 만든다.

 

sudo mkdir dev

sudo mkdir prod

 

먼저 dev로 이동해서 index.html를 만들어 주자.

자 이제 띄울 페이지를 만들었으니 서버 블록을 만들고 이를 연결해주면 끝이다.

nginx의 기본 설정 파일로 가 기본 서버 블록을 만들어 준다.

 

server {
        listen 80;
        listen [::]:80;

        root /var/www/html/dev;
        index index.html;

        server_name dev.moca9012.shop;

        location / {
                try_files $uri $uri/ =404;
        }
}

 

 

nginx 설정을 완료했으니 테스트를 거치고 restart 해준다.

이제 각각의 sub domain을 포함하여 입력하여 각각의 IP로 이동을 해보자 

성공적으로 잘 나온다.

 

3.리다이렉션 적용하기  

ip로 접속했을 때 도메인으로 들어가게 해보자

redirection 또한 server block을 하나 추가해주면 끝나는 문제이다.

nginx의 기본 설정 파일(/etc/nginx/sites-available)로 들어가서 다음과 같은 server block을 새로 만든다.

다시 테스트 후 리스타트한다.

 

아래의 영성과 같이 IP주소를 입력하여 접속해도 자동적으로 Domain name으로 바뀌는 것을 알 수 있다.

 

 

 

4. HTTPS 도메인 적용하기

추천 검색 키워드 :ec ubuntu 18.04 Let's Encrypt

참고글: https://hoyeong-rithm.tistory.com/53

 

https적용 이전에 우선 aws ec2에서 자신의 인스턴스 보안 그룹의 인바운드 규칙에 https을 추가해주어야한다.

하지만 난 이미 해놓아서 따로 다시 들어가지 않아도 된다.

 

$ sudo apt update
$ sudo apt-get install software-properties-common
$ sudo add-apt-repository ppa:certbot/certbot
$ sudo apt install python3-certbot-nginx

 

Certbot을 설치해주고 Certbot Nginx 패키지도 설치해 준다. 

python3로 해도 되고 python으로 해도 된다.

 

이후 sudo vi /etc/nginx/sites-available/default

로 들어가서 서버 네임을 추가 해야하지만 이미 http실습 과정에서 진행을 하여서 패쓰

이후 다시 nginx -t로 테스트를 하고 successful이 뜨면 

sudo systemctl reload nginx 로 nginx를 리로드 해준다.

 

SSL 인증서 받기

 sudo certbot --nginx -d www.moca9012.shop -d dev.moca9012.shop

-d 뒤에 HTTPS를 적용할 도메인을 적어주면 된다.

나는 www.moca9012.shop  과 dev.moca9012.shop 를 설정했다.

 

도메인을 입력하면 이메일과 알림 설정이 나오는데 이메일을 작성하고 A를 눌러줍니다.
그리고 두 가지 선택 사항이 나오는데 우리는 HTTP를 HTTPS로 리다이렉트할 것이기 때문에 2를 눌러준다.

이후에 이메일을 공유할래 하고 물어보지만 난 N를 택했다.

우리가 작성한 도메인이 맞는지 확인하고 Congratulation이 나왔다면 성공이다.

 

$ sudo certbot renew --dry-run

$ sudo service nginx restart

마지막으로 자동 갱신 확인을 위해 위와 같은 코드를 작성하고 별다른 오류가 없다면 nginx 재시작해준다.

 

 

이제 잘 뜨는 것을 확인 할 수 있다. 야미쓰