이번에는 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
위 사진과 같이 아예 새로운 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를 적용하는 걸로 돌아오겠습니다~
'AWS' 카테고리의 다른 글
[AWS] EC2 인스턴스 IP와 도메인(Domain) 연결하기 (nginx) (0) | 2022.03.23 |
---|---|
[AWS] EC2 서버 환경 구축하기(Nginx, PHP, MySQL 설치 & 연동) (0) | 2022.03.22 |
[AWS] EC2 인스턴스 접속하기 (MAC & Window) (0) | 2022.03.15 |
[AWS] AWS EC2 인스턴스 탄력적 IP(Elastic IP) 적용하기 (요금 부과 사항 알아보기) (0) | 2022.03.15 |
[AWS] EC2 인스턴스 생성하기(무료 - 프리티어) (0) | 2022.03.15 |