Nginx 설치 및 SSL 적용하기 - HJ-Rich/2022-MyRSS GitHub Wiki


목차



Nginx 설치

image
# nginx 설치. 80포트로 자동실행.
sudo apt-get install nginx -y
# nginx 상태 확인
sudo systemctl status nginx
# 접속 테스트
curl localhost





Nginx 설정 수정

  • 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 적용

  • 이하 명령어를 통해 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



전체 과정 영상





⚠️ **GitHub.com Fallback** ⚠️