포스트

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 라이센스를 따릅니다.