현재 서버의 AWS EC2
의 인스턴스는 2개가 실행중에 있습니다.
무료로 사용하고 있는 AWS EC2
는 nginx를 사용하여 webserver로써 동작할 것 입니다.
이러한 상황에서 도커를 사용하여 nginx
를 동작하는 것 보다 로컬 환경에서 nginx
를 동작하는게 오버헤드가 더 적다고 판단하여 로컬로 설치를 해보도록 하겠습니다.
sudo apt install nginx
해당 명령어를 통하여 nginx
를 설치합니다.
sudo systemctl start nginx && \
sudo systemctl status nginx
systemctl
명령어를 사용하여 실행 및 동작 상태를 확인합니다.
Certbot
을 사용하여 SSL 인증서를 발급받아 보겠습니다.
sudo apt install letsencrypt -y
sudo certbot certonly \
--manual \
--preferred-challenges \
dns \
-d "${*.example.com}" \
-d "${example.com}"
위와 같은 명령어를 실행시키고 Y
를 입력하며 진행합니다.
위 사진에 나오는 부분을 가비아 등 DNS 관리에서 등록해줍니다.
정상적으로 등록되었는지 확인하는 방법으로는 https://toolbox.googleapps.com/apps/dig/#TXT/_acme-challenge.${example.com}
에 방문하여 복사한 값을 넣고 TXT
로 변경한 후 확인합니다.
정상적으로 SSL 인증이 된 것을 확인할 수 있습니다!
이제 동작하고 있는 사이트와 연결을 해보도록 하겠습니다.
/etc/nginx/sites-available
에 존재하는 default 파일을 수정하겠습니다.
# Default server configuration
#
server {
listen 80 default_server;
listen [::]:80 default_server;
root /var/www/html;
server_name ${example.com};
location / {
return 301 https://${example.com}$request_uri;
}
}
# SSL 추가
server {
listen 443 ssl;
server_name ${example.com};
ssl_certificate /etc/letsencrypt/live/${example.com}/fullchain.pem; # SSL 인증서 파일
ssl_certificate_key /etc/letsencrypt/live/${example.com}/privkey.pem; # SSL 키 파일
location / {
proxy_pass http://${example.com}:${port};
}
}
위와 같이 파일을 수정합니다.
이후 아래의 명령어를 통해 문법 검사와 설정을 수정합니다.
sudo nginx -t
sudo service nginx reload
이후 사이트에 접속하면 정상적으로 접속이 가능한 것을 확인할 수 있습니다.
서브 도메인을 연결하는 법은 간단하게 할 수 있습니다.
/etc/nginx/sites-available
로 다시 이동하여 설정파일을 작성합니다.
저는 sonarqube.conf 를 생성하겠습니다.
##
#${subdomain} SubDomain Conf
##
# SSL Server
server {
listen 443 ssl;
server_name ${example.com};
location / {
proxy_pass http://
${example.com}:${port};
}
}
# Redirect Server
server {
listen 80;
listen [::]:80;
server_name ${example.com};
location / {
return 301 https://${subdomain name}.${example.com}$request_uri;
}
}
위와 같이 작성한 후 해당 파일을 심볼릭 링크를 적용합니다.
sudo ln -s /etc/nginx/sites-available/${파일명} /etc/nginx/sites-enabled
해당 명령어를 사용하면 서브도메인도 SSL
인증을 받을 수 있습니다.
정상적으로 심볼릭 링크 적용
이후 sudo service nginx reload
를 적용합니다.
간단하게 nginx 를 사용하여 SSL
인증과 서브도메인 환경을 구성해보았습니다.
처음에는 도커 환경으로 구성을 하려고 했지만 시간이 부족하여 로컬 환경으로 진행했습니다.
추후 시간의 여유가 남는다면 도커 환경으로도 작성해보도록 하겠습니다.