Middleware 가이드
요청이 브라우저에서 DB까지 가는 길을 따라 Web Server, WAS, 연동, TLS, 로드밸런싱, 로그를 정리한 학습 가이드
미들웨어는 운영체제와 애플리케이션 사이에서 요청 처리, 실행, 연동을 담당하는 계층이다. 이 가이드는 제품별 매뉴얼이 아니라 요청 흐름을 따라 읽는 학습 가이드다.
목표는 Nginx, Apache, Tomcat 설정을 각각 외우는 것이 아니라 다음 질문에 답할 수 있게 되는 것이다.
요청이 들어온다
-> 어디서 TLS가 끝나는가
-> 어디서 라우팅되는가
-> 어디서 애플리케이션이 실행되는가
-> 어디서 DB 연결이 만들어지는가
-> 어디서 로그를 볼 것인가
전체 지도
Client
-> Web Server / Reverse Proxy
-> WAS / Servlet Container
-> Application
-> DBMS
읽는 순서
| 순서 | 문서 | 답해야 하는 질문 |
|---|---|---|
| 01 | 요청 흐름과 계층 | 요청은 브라우저에서 DB까지 어떤 계층을 지나는가 |
| 02 | Web Server 역할 | Web Server는 정적 파일, TLS, 라우팅, 프록시 중 무엇을 담당하는가 |
| 03 | WAS 역할 | WAS는 애플리케이션 실행과 요청 매핑을 어떻게 담당하는가 |
| 04 | Web-WAS 연동 | Web Server는 어떤 방식으로 WAS에 요청을 넘기는가 |
| 05 | WAS-DB 연동 | 애플리케이션은 DB 연결을 어디서 만들고 관리하는가 |
| 06 | SSL/TLS | 인증서는 어디에 두고 TLS는 어느 계층에서 종료하는가 |
| 07 | Load Balancing과 세션 | 트래픽을 나눌 때 세션은 어떻게 유지하는가 |
| 08 | 로그와 장애 진단 | 502, 404, 500을 계층별로 어떻게 좁히는가 |
| 09 | 운영 체크리스트 | 구축·점검·장애 대응 때 무엇을 순서대로 볼 것인가 |
참고 모드
학습 경로를 먼저 읽고, 실제 제품 설정을 볼 때는 제품별 문서로 내려간다.
| 순서 | 문서 | 답해야 하는 질문 |
|---|---|---|
| 10 | Apache HTTP Server 개념과 특징 | Apache httpd는 어떤 역할을 하고 request, connection, worker를 어떻게 보는가 |
| 11 | Nginx 기초 | Nginx의 server, location, upstream은 어떻게 요청을 나누는가 |
| 12 | Apache Tomcat 기초 | Tomcat의 Connector, Host, Context는 어떤 역할을 하는가 |
| 13 | Apache MPM과 KeepAlive | Apache worker 수와 KeepAlive가 처리량에 어떤 영향을 주는가 |
| 14 | Tomcat Connector와 JVM Thread | Tomcat thread, Connector, JVM 옵션을 어떻게 함께 보는가 |
| 15 | Nginx worker와 upstream timeout | Nginx worker, upstream, timeout을 어떻게 함께 보는가 |
| 20 | Apache httpd-Tomcat mod_proxy 연동 | HTTP reverse proxy로 Tomcat에 요청을 넘길 때 무엇을 확인하는가 |
| 21 | Apache httpd-Tomcat mod_jk 연동 | AJP 기반 mod_jk 구성은 어떤 파일과 worker로 동작하는가 |
| 22 | Nginx-Tomcat Reverse Proxy 연동 | Nginx proxy_pass로 Tomcat에 요청을 넘길 때 무엇을 확인하는가 |
| 23 | Apache httpd-Tomcat mod_proxy_ajp 연동 | Apache proxy 문법으로 AJP backend에 연결할 때 무엇을 확인하는가 |
| 80 | 502/503/504 장애 런북 | Web Server와 WAS 사이 오류를 어떤 순서로 좁히는가 |
제품별 설정 파일이나 명령어를 빠르게 확인할 때는 부록을 본다.
- Apache·Nginx·Tomcat 운영 레퍼런스 — 제품별 설정 파일, 포트, 점검 명령, 설정 예시
관련 블로그 기록
- LB·WAF 뒤에서 클라이언트 실제 IP 살리기 — Web-WAS 연동과 프록시 헤더 사례
- catalina.out 로그가 너무 커질 때 — Tomcat 로그 운영 사례
- 폐쇄망에서 서버 시간 맞추기 — 로그 추적을 위한 시간 동기화 사례
작성 기준
각 챕터는 아래 요소를 필요할 때 골라 쓴다. 제품 문서와 연동 문서까지 같은 제목을 반복하지 않고, 문서가 답해야 하는 질문에 맞춰 섹션 이름을 조정한다.
요청 처리 흐름
핵심 정의
왜 필요한가
구성요소와 설정
제품별 구현 관점
점검 포인트
관련 블로그 기록
닫기 전 질문
0109는 흐름을 따라 읽고, 1023은 제품과 연동 방식을 공부할 때 읽는다. 80은 장애 대응 때 펼쳐보는 런북이고,
90은 필요할 때 빠르게 확인하는 레퍼런스다.