본문 바로가기
NestJS

[NestJS] NestJS WSL 배포하기

by 깅민 2025. 5. 29.

1. NestJS 서버 빌드

npm run build

 

2. 리눅스 서버에 파일 업로드(WSL)

2-1. nest 폴더 생성

sudo mkdir nest

 

2-2. dist 파일 copy

sudo cp -r /mnt/c/Users/mkk/Desktop/nest/dist/* /home/minki/nest

 

3. WSL에 Node 설치

3-1. 해당 위치로 이동

cd /usr/local/src

 

3-2. node 18.20.5 버전 다운

sudo curl -O https://nodejs.org/dist/v18.20.5/node-v18.20.5-linux-x64.tar.xz

 

3-3. 압축해제

sudo tar -xvf node-v18.20.5-linux-x64.tar.xz

 

3-4. 심볼링 링크 연결

압축 해제한 폴더 이동

sudo mv node-v18.20.5-linux-x64 /usr/local/node-18.20.5

 

 

sudo ln -sf /usr/local/node-18.20.5/bin/node /usr/bin/node
sudo ln -sf /usr/local/node-18.20.5/bin/npm /usr/bin/npm
sudo ln -sf /usr/local/node-18.20.5/bin/npx /usr/bin/npx

 

설치 확인합니다.

node -v
npm -v

 

4. pm2

PM2는 Node.js 애플리케이션을 프로덕션 환경에서 안정적으로 실행, 관리 해주는 프로세스 관리자.

"Node.js 서버를 백그라운드에서 돌리고, 꺼지면 자동으로 재시작해주고, 로그도 관리해주는 도구"

 

자동 재시작 서버가 죽으면 자동 재시작
영구 실행 터미널을 꺼도 백그라운드에서 계속 실행됨
로그 관리 stdout, stderr 로그를 자동 저장
여러 앱 관리 여러 개의 앱을 동시에 실행하고 모니터링
모니터링 pm2 monit로 실시간 상태 확인
시스템 재부팅 시 자동 실행 pm2 startup으로 설정 가능

 

이렇게만 해보고 해보니 node_modules가 설치되지 않네요.

package.json도 복사합니다.

sudo cp -r /mnt/c/Users/mkk/Desktop/nest/package.json /home/minki/nest

 

node_modules를 다시 다운 받습니다.

cd nest
npm install --omit=dev

 

--omit=dev 는 개발 단계에만 필요한 의존성 파일들을 빼고 패키징 해줍니다,

 

실행은 이걸로 해볼 수 있는데,

node ./main.js

 

이것말고 pm2로 해보겠습니다.

 

4-2. pm2 설치

sudo npm install -g pm2

 

PATH를 잡아줘야 합니다.

pm2는 /usr/local/node-18.20.5/lib/node_modules/pm2 에 설치됩니다.

find /usr/local -type f -name pm2 -perm -111 2>/dev/null

 

이렇게 결과가 나오는데

/usr/local/node-18.20.5/lib/node_modules/pm2/bin/pm2
/usr/local/node-18.20.5/lib/node_modules/pm2/pm2

 

PATH에 추가(영구 반영)

echo 'export PATH=/usr/local/node-18.20.5/bin:$PATH' >> ~/.bashrc
source ~/.bashrc

 

4-2-1. pm2 시작

pm2 start ./main.js

 

 

 

접속하면 Hello World 를 확인할 수 있습니다.

Hello World

 

4-3. pm2 명령어

실행 pm2 start app
상태 확인 pm2 status
로그 보기 pm2 logs app
재시작/중지 pm2 restart app
pm2 stop app
시스템 재시작 시 자동 실행 설정 pm2 startup
pm2 save

 

'NestJS' 카테고리의 다른 글

[NestJS] NestJS CORS  (0) 2025.05.29
[NestJS] NestJS DB연결하기  (1) 2025.05.28
[NestJS] NestJS 시작하기  (1) 2025.05.28