pm2(process manager)란? 프록시 서버를 pm2로 관리하기
pm2는 Node.js 애플리케이션을 운영 환경에서 안정적으로 실행하고 자동 재시작, 로드밸런싱, 로깅, 모니터링 등을 도와주는 프로세스 매니저(process manager)입니다.
🔧 pm2의 주요 기능
| 기능 | 설명 |
|---|---|
| 🔁 자동 재시작 | 서버가 에러로 죽으면 자동 재시작함 (forever처럼) |
| ⚙️ 멀티코어 클러스터링 | CPU 코어 수만큼 fork해서 부하 분산 |
| 📦 백그라운드 실행 | node server.js처럼 직접 실행할 필요 없이 pm2 start로 백그라운드 운영 |
| 📋 로그 관리 | 표준 출력/에러 로그를 자동 저장 (pm2 logs) |
| 🚦 프로세스 관리 | start, stop, restart, reload, list 등으로 관리 |
| 🧠 메모리 리밋 감시 | 메모리 폭주하면 자동 재시작 가능 (–max-memory-restart) |
| 📊 웹 대시보드 | pm2 monit 으로 tui 시각화 가능 |
📦 설치
1
2
npm install -g pm2
🚀 사용 예시 ** **기본 실행
1
pm2 start server.js
포트나 인자 지정
1
pm2 start server.js --name frontend-proxy -- PORT=3000
클러스터 모드로 실행 (CPU 개수만큼)
1
pm2 start server.js -i max
상태 확인 및 재시작
1
pm2 list pm2 restart frontend-proxy
로그 보기
1
pm2 logs
💾 영구 실행 (재부팅 시 자동 시작)
1
2
pm2 startup
pm2 save
📁 로그 경로 ** **기본적으로 ~/.pm2/logs/에 저장됨:
1
frontend-proxy-out.log frontend-proxy-error.log
🔥 실제 운영에서 쓸 구조 bash
1
2
3
pm2 start frontend-proxy.js --name frontend-proxy -i max
pm2 start backend-gateway.js --name gateway -i max
pm2 save
→ 두 서버를 **자동 재시작 + 멀티코어 분산 + 모니터링**까지 되는 구조로 운영 가능. ** **
1
2
3
4
5
6
7
8
9
10
11
12
13
# 서버 실행 (자동 재시작 포함)
pm2 start server.js --name frontend-proxy
# 메모리 초과 시 재시작 옵션 추가
pm2 start server.js --name frontend-proxy --max-memory-restart 300M
# 재부팅 후에도 자동 실행되게 등록
pm2 startup
pm2 save
# 모니터링 보기
pm2 monit
프론트 프록시 서버 하나는 pm2로 띄워두면 든든하다. 에러 나든 꺼지든 무한 부활
이제 봇 스캔 끄떡 없음.
이 기사는 저작권자의 CC BY 4.0 라이센스를 따릅니다.


