운영 서버 종합 점검표 (OS + Nginx + Node.js)¶
- 운영 서버(Production Server) 를 실제 서비스에 투입하기 전 반드시 확인해야 하는 항목들을 체크리스트 형태로 정의함.
- “이 서버가 운영에 적합한 상태인가”를 판정하기 위한 문서임.
❌ 하나라도 미충족 시
해당 서버는 Production 사용 불가 상태로 판단함.
0. 점검 전 기본 원칙¶
- 모든 점검은 운영 사용자 계정 기준으로 수행함
- 임시 조치(
setenforce 0, 테스트용 포트 개방 등)는 불합격 처리 - “지금은 괜찮아 보임”은 인정하지 않음
- 재부팅 후 상태까지 포함하여 판정함
1. OS 기본 상태 점검¶
- Rocky Linux / AlmaLinux / RHEL 계열 사용
- OS 보안 업데이트 최신 상태
- Timezone 설정 완료 (Asia/Seoul 등)
- swap 설정 존재
- hostname / hosts 정리 완료
2. 사용자 / 권한 / SSH¶
- root SSH 직접 로그인 차단
- 운영 사용자 계정 존재
- sudo 권한 정상 동작
- SSH 포트 정책 적용
- PasswordAuthentication 설정이 서버 노출 형태와 일치
- 외부에 SSH가 노출되는 서버라면 Fail2ban 정상 동작
3. SELinux 상태 (필수)¶
- SELinux Enforcing 상태
-
setenforce 0사용 흔적 없음 - Permissive 운영 ❌
- 필요한 포트만 semanage 등록
- audit 로그 무시한 흔적 없음
SELinux를 끈 서버는 무조건 불합격
4. Firewall 정책¶
- 외부 허용 포트 명확 (80 / 443 등)
- Node.js 포트 외부 미개방
- 테스트용 포트 개방 흔적 없음
- 불필요한 서비스 포트 없음
5. Nginx 기본 상태¶
- nginx 서비스 정상 기동
-
nginx -t통과 - systemd
LimitNOFILE설정 적용 - access / error log 경로 정상
- SSL 설정 정상 (해당 시)
6. Nginx 보안 / 성능 정책¶
- rate limit 설정 적용
- connection limit 설정 적용
- send_timeout / keepalive 정책 명확
- proxy timeout 정책 확인
- 불필요한 header 노출 없음
7. Node.js 설치 상태¶
- Node.js 실행 경로
/usr/bin/node - npm 실행 경로
/usr/bin/npm - nvm 사용 흔적 없음
- root nvm 공유 구조 없음
- 운영 서버에서 npm install 수행 이력 없음
8. Node.js 실행 구조¶
-
/home/[User]/[ProjectName]작업 경로 존재 - 운영 실행 경로(
/var/www) 분리 -
/var/www에서 개발 작업 수행 ❌ - Node.js 직접 실행 금지
- PM2 기반 실행만 사용
9. PM2 기본 상태¶
- PM2 전역 설치 (root)
- PM2 실행은 운영 사용자 계정
- ecosystem.config.cjs 존재
- CLI 단독 실행(
pm2 start app.js) ❌ -
pm2 list정상
10. PM2 startup (systemd)¶
-
pm2 startup systemd완료 - pm2-[User].service 존재
-
systemctl status pm2-[User].service정상 -
pm2 save --force완료 - 서버 재부팅 후 자동 기동 확인
11. Nginx ↔ Node.js 연동¶
- Node.js는
127.0.0.1또는 내부 IP listen - Node.js 포트 외부 노출 ❌
-
proxy_pass정상 동작 - SELinux Enforcing 상태에서 502 없음
- 필요 시
http_port_tsemanage 적용
12. 로그 / 장애 대응¶
- Nginx 로그 로테이션 설정
- pm2-logrotate 설정 완료
- 로그 권한 정상
- 장애 시 확인 경로 명확
- 로그 flush / kill 남용 흔적 없음
13. 금지 패턴 점검 (Do Not Do)¶
- root로 Node.js 앱 실행 ❌
- root로 PM2 운영 ❌
- 운영 서버에서 npm install ❌
- 운영 중 즉석 설정 변경 ❌
- 문서 없는 설정 변경 ❌
14. 최종 판정¶
- 모든 항목 충족
판정 결과¶
- ✅ Production 투입 가능
- ❌ Production 투입 불가
하나라도 체크되지 않았다면
이 서버는 운영 서버가 아니다.
15. 운영 원칙 요약¶
- 운영은 “되게 하는 것”이 아니라 다시 살아나게 하는 것
- 감이 아닌 구조와 체크로 판단
- 운영 서버의 최종 관문임
이 점검표를 통과한 서버만
Production Server라 부를 수 있다.