[AWS] 서브 도메인 적용하기
0. 들어가기 전에
- 이 글의 환경은 AWS EC2에 ubuntu18.04버전과 nginx를 사용하여 진행되었습니다.
- 도메인은 가비아 사이트에서 구매를 하였습니다.
- 이번 글은 서브 도메인을 등록하는 방법을 기록한 글입니다.
1. 과정
1. Route53에 접속해서 서브 도메인을 등록해준다.
- 레코드 유형을 CNAME으로 등록하면 서브 도메인으로 사용할 수 있다.
- 값에는 Route53의 호스팅 영역에 등록했던 도메인 이름을 입력한다.
- 여기에서는 Dev와 Prod 두 개를 등록할 예정이다.
2. 가비아에 들어가서 서브도메인을 등록해준다.
- Route53과 마찬가지로 타입과 호스트를 작성해 준다.
- 값/위치에서는 WWW, @를 등록했던것과는 달리
dev.도메인.
,prod.도메인.
을 입력해주면 된다.- 여기에서 마지막에는 .이 필수로 들어가야 한다.
3. aws에서 subdomain의 이름과 같은 디렉토리를 생성한다.
$ cd /var/www/domain_name
- 이 디렉토리에서 서브 도메인에 포함될 파일(ex) index파일) 같은 것을 관리해줄 예정이다.
- 위의 경로는 처음에 DNS설정을 할 때 어떻게 했는지에 따라 다르다.
- 기본 경로는
/var/www/html
이지만, 나 같은 경우에는 서버 블록을 사용했기때문에 기본 경로가/var/www/domain이름
으로 설정되어있다.
- 기본 경로는
$ mkdir prod $ mkdir dev
- 디렉토리를 만들었으면 각 디렉토리에 index.html을 만들어준다.
- 디렉토리에 접근한 다음 아래와 같은 파일들을 생성해준다.
## index.html
## DEV
<html>
<head>
<title>DEV</title>
</head>
<body>
<h1>This is dev.domain_name</h1>
</body>
</html>
## index.html
## PROD
<html>
<head>
<title>PROD</title>
</head>
<body>
<h1>This is prod.domain_name</h1>
</body>
</html>
4. aws에서 nginx 설정을 해준다.
- 나는 sites-available에서 default를 unlink하고 domain이름으로 파일을 새로 만들어서 사용중이다.
- 그래서 sites-available/domain이름 으로 된 파일에 들어가서 수정해야한다.
$ vim /etc/nginx/sites-available/domain이름
## SubDoain Start
## DEV
server {
root /var/www/domain이름/dev; ## 기존에 있는 root 경로에서 html만 변경
index index.html index.htm index.nginx-debian.html;
server_name dev.domain이름;
include snippets/phpmyadmin.conf;
location / {
try_files $uri $uri/ =404;
}
location ~ \\.php$ {
include snippets/fastcgi-php.conf;
fastcgi_pass unix:/var/run/php/php7.2-fpm.sock;
}
location ~ /\\.ht {
deny all;
}
## PROD
server {
root /var/www/domain이름/prod; ## 기존에 있는 root 경로에서 html만 변경
index index.html index.htm index.nginx-debian.html;
server_name prod.domain이름;
include snippets/phpmyadmin.conf;
location / {
try_files $uri $uri/ =404;
}
location ~ \\.php$ {
include snippets/fastcgi-php.conf;
fastcgi_pass unix:/var/run/php/php7.2-fpm.sock;
}
location ~ /\\.ht {
deny all;
}
5. HTTPS를 기존 도메인에 적용한 상태라면, 서브 도메인도 HTTPS 설정을 해주면 된다.
- let’s encrypt로 설정
$ certbot --nginx -d domain_name -d prod.domain_name $ certbot --nginx -d domain_name -d dev.domain_name
- 위 설정을 다 마쳤다면, nginx를 재시작 해준다.
$ sudo service nginx restart
※ 참조
'AWS' 카테고리의 다른 글
[AWS] AWS를 통해 네트워크 용어 찍먹하기 (0) | 2023.06.04 |
---|---|
[AWS] IP주소를 Domain로 Redirect (0) | 2022.07.30 |
[AWS] AWS의 도메인에 HTTPS 적용 (0) | 2022.07.29 |
[AWS] AWS EC2의 MySQL에 외부 접속하기 (0) | 2022.07.28 |
[AWS] AWS EC2에 DNS 연결하기 (0) | 2022.07.27 |