✅ 1. 웹 서버(Web Server) 오류 및 장애 현상

문제현상주요 원인해결 방안
404 Not Found URL 오타, 리소스 없음, 라우팅 미스 리소스 경로 확인, URL 재설정, 리버스 프록시 설정 확인 (예: Nginx location 설정)
403 Forbidden 권한 오류, 접근 제어 정책 위반 파일/디렉토리 퍼미션 확인, SELinux/AppArmor 설정 점검
500 Internal Server Error 애플리케이션 버그, PHP/Python 오류, 설정 파일 오류 웹서버 로그(Nginx: /var/log/nginx/error.log) 확인 후, 코드/설정 수정
504 Gateway Timeout 백엔드(WAS) 응답 지연/실패 WAS 상태 확인, WAS 응답시간 개선 (쿼리 튜닝 등), timeout 값 조정 (proxy_read_timeout)
서비스 간헐적 지연 트래픽 과다, Keepalive 설정 오류 웹서버 connection 설정 조정 (worker_connections, keepalive_timeout)
 

✅ 2. WAS(Web Application Server) 오류 및 장애 현상

문제현상주요 원인해결 방안
응답 없음(Hang) GC 과다, 스레드 풀 고갈, DB 커넥션 풀 고갈 GC 로그 확인, 스레드/커넥션 풀 조정, WAS 재기동
메모리 누수 애플리케이션에서 객체 미해제 Heap dump 분석, 의심 클래스 추적 및 수정
OutOfMemoryError JVM Heap 부족 JVM 옵션 튜닝 (-Xms, -Xmx), 캐시 전략 개선
High CPU 사용률 무한 루프, 동시성 이슈, GC jstack, top, jstat 등으로 스레드 분석
DB 응답 지연 쿼리 성능 이슈, 인덱스 미적용 슬로우 쿼리 로그 확인, 쿼리 튜닝
WAS 재시작 반복 (Crash Loop) 환경 변수 설정 오류, WAR/EAR 배포 실패 배포 프로세스 점검, 로그 분석(catalina.out, nohup.out)
 

✅ 3. Web-WAS 연동 지연/오류 사례

현상원인조치
WAS는 정상인데, 웹에서만 지연 프록시 타임아웃 설정 미스 (proxy_pass, keepalive) 웹서버 타임아웃 설정 확인 및 조정
프록시된 리소스 응답 실패 프록시 설정 오류 (upstream 주소 틀림) nginx.conf 또는 httpd.conf에서 proxy_pass, upstream 설정 검토
SSL 인증서 오류 인증서 만료, 체인 불완전 인증서 재발급 또는 체인 포함 재설정
세션 공유 안됨 (로드밸런싱 이슈) Sticky Session 미설정 ip_hash, route 기반 세션 유지 설정 적용
 

✅ 4. 운영 중 대응 우선순위

단계내용
1단계 모니터링 시스템(Zabbix, Prometheus, ELK 등)에서 알람 감지
2단계 웹/WAS 로그 확인 (시간 동기화가 중요)
3단계 재현 테스트 또는 헬스 체크로 영향 범위 확인
4단계 네트워크, DB, 인프라 자원 (CPU, 메모리, Disk I/O 등) 확인
5단계 롤백 또는 서비스 Graceful Restart (무중단 재기동 고려)
 

✅ 실무에서 반드시 준비해야 할 체크리스트

  • Nginx/Apache, WAS(Tomcat, JBoss 등)별 로그 위치 및 필터링 방법 숙지
  • JVM Heap/GC 튜닝, APM 도구(New Relic, Pinpoint) 사용법
  • 무중단 배포(Zero-downtime deploy) 전략 이해
  • 시스템 리소스 모니터링 도구(top, iostat, netstat, ss 등)
  • 오류 시 시나리오 기반 롤백 계획 및 트래픽 분산 기술 (로드밸런서, Blue-Green 배포)

+ Recent posts