티스토리 뷰

아래의 환경에서 서버를 구성해 보았다.

 

1. 환경
Ubuntu 24.04
nginx
node.js
maria DB

2. 서버 구성
nginx 와 node.js 로 리버스 프록시 구성
무료 SSL 자동 갱신


1. 패키지 업데이트 및 기본 도구 설치

sudo apt update
sudo apt upgrade -y
sudo apt install -y curl wget git

 


2. Node.js 설치

curl -fsSL https://deb.nodesource.com/setup_20.x | sudo -E bash -
sudo apt install -y nodejs

 


3. Nginx 설치

sudo apt install -y nginx



4. MariaDB 설치

sudo apt install -y mariadb-server
sudo mysql_secure_installation

 


5. Nginx 설정
/etc/nginx/sites-available/api.xxxx.co.kr 파일을 생성하고 다음과 같이 작성:

server {
    listen 80;
    server_name api.xxxx.co.kr;

    location / {
        proxy_pass http://localhost:3000;  # Node.js 애플리케이션 포트
        proxy_http_version 1.1;
        proxy_set_header Upgrade $http_upgrade;
        proxy_set_header Connection 'upgrade';
        proxy_set_header Host $host;
        proxy_cache_bypass $http_upgrade;
    }
}

 

 

심볼릭 링크 생성:

sudo ln -s /etc/nginx/sites-available/api.xxxx.co.kr /etc/nginx/sites-enabled/

 

 

 

6. Let's Encrypt로 SSL 설정

sudo apt install -y certbot python3-certbot-nginx
sudo certbot --nginx -d api.xxxx.co.kr

 

 

7. SSL 자동갱신 설정

sudo systemctl enable certbot.timer
sudo systemctl start certbot.timer

 

 

 

8. 방화벽 설정

sudo ufw allow 22
sudo ufw allow 80
sudo ufw allow 443
sudo ufw enable

 

 

9. Node.js 애플리케이션 실행

PM2를 이용해서 Node.js 애플리케이션을 관리한다.

sudo npm install -g pm2
pm2 start your-app.js
pm2 startup systemd

 

 

10. Nginx 재시작

sudo systemctl restart nginx

 

 

댓글