AWS

[AWS] EC2 인스턴스 서브도메인 연결, 리다이렉션(Redirection) 하기 (nginx)

Hyeonni 2022. 3. 23. 02:52

이번에는 EC2 인스턴스에 서브도메인을 연결하고, 리다이렉션을 해볼 예정이다.

가비아 서브도메인을 등록하는 자세한 법을 알고 싶다면 아래 포스트를 확인하는 것을 추천한다.

이번 포스트에서는 가비아에서 서브도메인을 등록하는 자세한 방법에 대해서는 언급하지 않는다.

 

[AWS] EC2 인스턴스 IP와 도메인(Domain) 연결하기 (nginx)

IP를 이용해서 네이버 같은 플랫폼이나 사이트들을 접속해본 경험이 많지 않을 것이다. 물론 백엔드를 공부하기 시작하면서 여러 번 접속해본 경험이 있긴 하지만,,, 기억하기 어려운 여러 숫자

ta-mi.tistory.com

 

서브도메인(subdomain) & 리다이렉션(redirection)

 

서브도메인(subdomain)이란?

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

 

리다이렉션(redirection)이란?

네이버를 IP를 이용해서 접속해도 도메인으로 접속되고, http로 접속해도 https로 연결되는 것을 확인할 수 있다. 이것이 가능한 이유는 리다이렉션을 해주었기 때문이다.

 

인터넷 상에서 데이터를 안전하게 주고받기 위해서 암호화하여 데이터를 주고받는다.

이때 http 대신 http에 보안성을 추가한 https를 사용한다.

 

 

서브도메인 연결하기

1. 가비아에서 서브도메인 등록

  • dev :  개발 서버용
  • prod : 실제 배포 서버용

꼭 .shop.으로 shop 뒤에 '.'을 넣어줘야 연결된다!

 

2. nginx 기본 경로에 서브도메인 디렉토리 설정

각각의 서브도메인마다 다른 페이지를 띄워주어야 하기 때문에 nginx의 기본 경로에 서브도메인에 맞는 디렉토리를 만들어 주어야 한다.

 

cd /var/www/html
sudo mkdir dev
sudo mkdir prod

디렉토리명은 자유롭게 설정하면 된다.

 

3. 서브도메인 접속 시 띄워줄 화면 만들기

cd dev
sudo vi index.html

cd ..
cd prod
sudo vi index.html

html 파일의 내용은 자유롭게 구성하면 된다.

 

3. 서브도메인에 해당하는 Server 블록 만들기

cd /etc/nginx/sites-available
sudo vi default

default

위 사진과 같이 아예 새로운 server 블록을 서브도메인마다 만들어주면 된다.

여기서는 PHP를 사용하지 않을 것이므로 PHP에 대한 설정을 따로 해주지 않았다.

  • root : 서브도메인을 위해 만들어둔 nginx의 기본 경로에 존재하는 디렉토리 경로
  • index : 해당 서브도메인으로 접속하면 처음 보일 화면
  • server_name : 서브도메인 입력

 

4. nginx 테스트 & 재시작

sudo nginx -t
sudo service nginx restart

 

서브도메인 연결 끝!

 

접속 성공!

 

error : 'dns_probe_finished_nxdomain'로 인한 인터넷 연결 실패
위와 같은 에러가 발생하면 DNS에서 발생하는 오류로 여러 가지 해결법이 있지만 
윈도우 10의 경우, DNS 클라이언트 서비스 재시작이 안되므로 간단하게 해결하고 싶다면 전원을 껐다 켜면 해결된다.

 

 

리다이렉션(redirection) 설정하기

 

IP로 접속했을 때, 도메인으로 접속이 되도록 리다이렉션을 설정해보자.

 

cd /etc/nginx/sites-available
sudo vi default

서버 설정 파일에 들어가서 리다이렉션을 위한 서버 블록을 만들어준다.

server{
	listen 80;
    server_name IP 주소 입력
    return 301 http://도메인주소$request_uri;
}

아직 https 설정을 안 했기 때문에 http로 사용했다.

https를 적용하면 http를 https로 수정해야 한다.

 

sudo nginx -t
sudo service nginx restart

이렇게 리다이렉션도 손쉽게 적용할 수 있다.

 

나중에 host, DNS와 같은 네트워크 부분도 한번 정리를 해야겠다..

다음에는 HTTPS를 적용하는 걸로 돌아오겠습니다~