코이팅

AWS EC2 Ubuntu Nginx 서브 도메인 및 Domain Redirection 적용 본문

Server

AWS EC2 Ubuntu Nginx 서브 도메인 및 Domain Redirection 적용

코이팅 2023. 2. 6. 22:03
728x90
반응형

1. 도메인이란

ip는 사람이 이해하고 기억하기 어렵습니다. 따라서 각 ip에 이름을 부여했는데, 이것을 도메인이라고 합니다.

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

2.  서브 도메인 추가

1) My가비아 → 서비스관리 페이지로 이동합니다.

My가비아  → 서비스관리 클릭

2) DNS 관리툴 버튼을 선택합니다.

DNS 관리툴 클릭\

3) 설정할 도메인을 체크 후 DNS 설정을 클릭합니다.

체크 후 DNS 설정 클릭

4) 레코드 추가를 클릭하고, 서브 도메인을 추가해줍니다.

레코드 추가 클릭
설정 화면

💊 CNAME 타입 레코드

Canonical Name record의 줄임말로, 소유한 도메인에 별칭을 지정해주는 값입니다.

고유한 호스트명과 레코드 값을 가지므로 도메인 소유권 확인에 이용되기도 합니다.

3.  Nginx 설정 파일 수정

위의 과정에서 'dev'과 'prod'의 이름으로 서브 도메인을 만들었습니다.

✅ 개발환경

  • macOS Ventura 13.1
  • Ubuntu Server 22.04 LTS
  • PHP 8.1.2

1) Nginx 기본 경로에 디렉터리 생성합니다.

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

$ cd /var/www/html
$ sudo mkdir 호스트1(ex.dev)
$ sudo mkdir 호스트2(ex.prod)
$ ls -l

2) php 파일 or html 파일 생성합니다.

 ☑️ 경로 : /var/www/html

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

$ sudo vim dev/dev.php

<?php
phpinfo();
?>

:wq

$ sudo vim prod/prod.php

<?php
phpinfo();
?>

:wq

php 파일 생성

3) 서브 도메인에 대한 추가 설정을 합니다.

  • Nginx 기본 설정 파일 /etc/nginx/sites-available/default로 들어가서 서브 도메인에 대한 추가 설정을 다음과 같이 해줍니다.
$ sudo vim /etc/nginx/sites-available/default

본인의 호스트 이름으로 변경하여 기본 설정 파일에 붙여넣습니다. 그리고 저장해줍니다.

server {
	root /var/www/html/호스트1;
	index 호스트1.html 호스트1.php;
	server_name 호스트1.도메인;
	
	location / {
                try_files $uri $uri/ =404;
        }

        location ~ \.php$ {
                include snippets/fastcgi-php.conf;
                fastcgi_pass unix:/run/php/php8.1-fpm.sock;
        }
}

server {
	root /var/www/html/호스트2;
	index 호스트2.html 호스트2.php;
	server_name 호스트2.도메인;
	
	location / {
                try_files $uri $uri/ =404;
        }

        location ~ \.php$ {
                include snippets/fastcgi-php.conf;
                fastcgi_pass unix:/run/php/php8.1-fpm.sock;
        }
}

설정 화면

4) Nginx 서버를 재시작합니다.

Nginx 기본 설정 파일을 수정하면 항상 Nginx 서버를 재시작해줍니다.

$ sudo service nginx restart // nignx 서버 재시작

4. 서브 도메인 연결 확인

url 창에 접속하여 접속이 잘 됐는지 확인합니다.

호스트1.도메인
호스트1.도메인/{파일명}.php

호스트2.도메인
호스트2.도메인/{파일명}.php

성공 1-1
성공 1-2
성공 2-1
성공 2-2

5. Domain Rediraction 적용

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

보통 Ip to Domain Redirection이라고 합니다.

1) Nginx의 설정 디렉터리인 /etc/nginx/sites-available/default 파일을 열어줍니다.

아래 명령어를 터미널에 입력해주세요.

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

2) 설정을 변경해주세요. 

본인의 퍼블릭 IPv4 주소와 도메인으로 변경 후 붙여넣어주세요.

server {
	listen 80;
	server_name 본인의 퍼블릭 IPv4 주소 입력;
	return 301 https://www.도메인$request_uri;
}

설정 화면

** 여기서 https로 return 하기 때문에 AWS에 Let's Encrypt로 HTTPS 적용이 되어있어야 최종 결과 화면에서 오류가 나지 않습니다. 아래 링크를 통해 https를 적용해주세요.

https://king-ja.tistory.com/104

 

AWS에 Let's Encrypt로 HTTPS 적용하기

1. HTTP vs HTTPS ? 1) HTTP(Hypertext Transfer Protocol) 클라이언트와 서버 양쪽에서 통신할 수 있도록 하는 기본 통신 프로토콜입니다. 앞서 웹서버 HTTP 프로토콜의 포트인 80번 포트로 접속하도록 설정을 하

king-ja.tistory.com

3) Nginx 서버를 재시작합니다.

$ sudo service nginx restart // nignx 서버 재시작

4) 주소창에 퍼블릭 IPv4 주소를 입력하면 도메인으로 연결되는 것을 확인할 수 있습니다.

  •  AWS EC2 인스턴스에서 퍼블릭 IPv4 주소를 복사하고 url창에 입력합니다.

퍼블릭 IPv4 주소 확인
성공 화면

728x90
반응형

'Server' 카테고리의 다른 글

AWS RDS 구축 (MySQL)  (3) 2023.02.13
AWS에 Let's Encrypt로 HTTPS 적용하기  (2) 2023.02.12
AWS EC2 ubuntu 가비아 도메인 적용  (1) 2023.02.06
AWS EC2에 MySQL, PHP 설치 방법  (2) 2023.02.05
AWS EC2 인스턴스에 Nginx 적용하기  (0) 2023.02.05
Comments