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 를 확인할 수 있습니다.

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 |