# nginx 설치. 80포트로 자동실행.
sudo apt-get install nginx -y
# nginx 상태 확인
sudo systemctl status nginx
# 접속 테스트
curl localhost
sudo vi /etc/nginx/nginx.conf
- 수정 완료 후 적용을 위해 재시작.
sudo service nginx restart
- path, 즉 Request URL을 통한 L7 스위칭.
myrss.ga/api
로 시작하는 요청은 8080 포트 즉 백엔드 WAS로 보낸다.
- 그 외 모든 요청은 3000 포트 즉 프론트로 보낸다.
- 개발, 운영 환경을 별도 인스턴스에 구성했기에 사설 아이피가 다르다.
http {
server {
server_name myrss.ga;
location / {
proxy_pass http://{PROD_PRIVATE_IP}:3000;
}
location /api {
proxy_pass http://{PROD_PRIVATE_IP}:8080;
}
listen 80;
}
server {
server_name dev.myrss.ga;
location / {
proxy_pass http://{DEV_PRIVATE_IP}:3000;
}
location /api {
proxy_pass http://{DEV_PRIVATE_IP}:8080;
}
listen 80;
}
}
- 이하 명령어를 통해 SSL 적용
- certbot은 Let's Encrypt를 통해 인증서를 발급받는다.
- 발급된 인증서의 경로 및 SSL을 위한 443 포트에 대한 설정을 nginx.conf 에 certbot이 적용해준다.
- nginx.conf 파일이 수정되었으므로 nginx를 재시작해준다.
- 적용 이후 80포트는 443 포트로 리디렉팅 된다.
sudo snap install core
sudo snap refresh core
sudo snap install --classic certbot
sudo ln -s /snap/bin/certbot /usr/bin/certbot
sudo certbot --nginx -d myrss.ga -d dev.myrss.ga
sudo certbot renew --dry-run
sudo systemctl daemon-reload
sudo systemctl restart nginx
systemctl status nginx