일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | 4 | |||
5 | 6 | 7 | 8 | 9 | 10 | 11 |
12 | 13 | 14 | 15 | 16 | 17 | 18 |
19 | 20 | 21 | 22 | 23 | 24 | 25 |
26 | 27 | 28 | 29 | 30 | 31 |
- 프리온보딩
- 개발자취준
- 백엔드 개발자
- 기술면접
- 자바
- IT취준
- apm 소스설치
- 코테
- 백엔드개발자
- IT개발
- IT
- 알고리즘
- 백준
- 프리온보딩 백엔드 챌린지
- 개발공부
- apm 수동설치
- 백엔드
- 프로그래머스
- IT취업
- 백준 자바
- IT공부
- 알고리즘풀이
- IT개발자
- 개발자
- 코딩
- cs지식
- 원티드
- Java
- 백준 java
- 코딩테스트
- Today
- Total
코이팅
AWS EC2 Ubuntu Nginx 서브 도메인 및 Domain Redirection 적용 본문
1. 도메인이란
ip는 사람이 이해하고 기억하기 어렵습니다. 따라서 각 ip에 이름을 부여했는데, 이것을 도메인이라고 합니다.
- 기본 도메인 : 처음에 신청한 기본 웹서버의 이름 (설정한 ip주소의 서버로 이동함)
- 멀티 도메인 : 기본 도메인에 호스트 이름만 다르게 붙여서 사용하는 여러 개의 도메인
- 서브 도메인 : 멀티 도메인과 거의 같으며, 도메인명으로 사용할 수 있는 문자의 개수 내에서 원하는 만큼의 호스트 이름을 얼마든지 붙여서 사용할 수 있는 도메인
- 가상 도메인 : 기본 도메인외에 별도의 도메인으로 기본 도메인과 같은 홈페이지에 연결된 도메인
2. 서브 도메인 추가
1) My가비아 → 서비스관리 페이지로 이동합니다.
2) DNS 관리툴 버튼을 선택합니다.
3) 설정할 도메인을 체크 후 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
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
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
3) Nginx 서버를 재시작합니다.
$ sudo service nginx restart // nignx 서버 재시작
4) 주소창에 퍼블릭 IPv4 주소를 입력하면 도메인으로 연결되는 것을 확인할 수 있습니다.
- AWS EC2 인스턴스에서 퍼블릭 IPv4 주소를 복사하고 url창에 입력합니다.
'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 |