본문 바로가기

nest.js

Nest.js MyApp 서버 배포

ai에 의해 생성된 이미지

 

 

Nest.js 프로젝트를 배포하는 방법을 설명하겠다.

우선 프로젝트를 빌드하고 서버에 배포한다. 

서버에서 서비스 실행 및 관리를 한다.

 

0. Node.js 설치하기

 

# 기본 업데이트

sudo yum -y update

 

# Node.js 20 (권장 LTS)
curl -fsSL https://rpm.nodesource.com/setup_20.x | sudo bash -
sudo dnf -y install nodejs gcc-c++ make
node -v && npm -v

 

 

1. 프로젝트 빌드하기

Nest.js는 TypeScript 기반이라 JavaScript로 변환해서 배포해야 한다.

 

npm run build

 

결과물은 기본적으로 dist 디렉토리에 생성된다.

배포 서버에는 이 dist 폴더를 복사해서 실행한다.

 

2. 실행 환경 설정

환경 변수 관리 파일을 서버에 복사한다.

 

.env

package-lock.json

package.json

 

패키지를 설치하고 app을 실행한다.

 

npm install --production (개발용 의존성 제외)

node dist/main.js

 

3. 전용 서버에 배포

서버에 코드를 업로드 한다. (FTP, SCP, Git)

pm2 프로세스 매니니저 사용

 

npm install -g pm2
pm2 start dist/main.js --name my-nest-app
pm2 startup
pm2 save

 

4. 서비스 실행 및 관리

로그 관리 : pm2 logs, pm2 log myApp

무중단배포 : pm2 reload

보안 : HTTPS 설정

 

 

PM2 에코시스템 파일 이용한 방법

// ecosystem.config.js
module.exports = {
  apps: [{
    name: 'myApp',
    script: 'dist/main.js',
    env: {
      NODE_ENV: 'development',
      PORT: 3000,
    },
    env_production: {
      NODE_ENV: 'production',
      PORT: 8080,
      DATABASE_URL: 'postgres://...',
      JWT_SECRET: 'super_secret',
    },
  }]
};

 

배포 

pm2 start ecosystem.config.js --env production
pm2 save

 

배포 프로젝트 경로

myAPP/
├─ dist/
├─ .env.production

├─ package.json

├─ package-lock.json

├─ ecosystem.config.js

 

 

 

'nest.js' 카테고리의 다른 글

구글, Gmail SMTP 설정하기  (0) 2025.09.30
2. Nest.js 프로젝트 생성  (0) 2025.02.12
1. nest.js 개요 및 소개  (0) 2024.12.31