반응형
안녕하세요.
오늘은 아파치 웹서버와 프록시서버 그리고 WAS서버의 통신 방식에 대하여 알아보겠습니다.
웹 서버(Apache), 프록시 서버, WAS(Web Application Server) 간 통신 방식
1. 기본 구성 및 역할
- 클라이언트 (Client): 웹 브라우저나 애플리케이션에서 요청을 보냄
- 프록시 서버 (Proxy Server): 요청을 중계, 캐싱, 보안 강화, 로드 밸런싱 수행
- 웹 서버 (Apache HTTP Server): 정적 콘텐츠 제공, 요청 필터링, WAS 전달
- WAS (Web Application Server, 예: Tomcat, JEUS, WebLogic): 동적 콘텐츠 처리 (비즈니스 로직 수행)
2. 요청(Request) 처리 흐름
- 1단계: 클라이언트 → 프록시 서버
- 클라이언트가 웹 브라우저에서 URL 입력 후 HTTP/HTTPS 요청 전송
- 프록시 서버는 다음을 수행:
- 보안 검사 (예: 방화벽, 접근 제어)
- 캐시된 콘텐츠 확인 (있다면 바로 응답 반환)
- 요청을 내부 웹 서버로 전달 (로드 밸런싱 포함)
- 2단계: 프록시 서버 → 아파치 웹서버
- 프록시 서버가 내부 네트워크에 위치한 Apache 웹서버로 요청 전달
- Apache 웹서버는 요청 분석 후:
- 정적 파일 (HTML, CSS, JS, 이미지 등)이라면 즉시 응답
- 동적 요청이라면 WAS로 전달 (Reverse Proxy 방식 사용)
Apache와 WAS 간 통신 방식:
- AJP 프로토콜 (Apache JServ Protocol): mod_jk, mod_proxy_ajp 사용
- HTTP/HTTPS 프로토콜: mod_proxy_http 사용
- gRPC, FastCGI와 같은 다른 프로토콜도 가능
- 3단계: 아파치 웹서버 → WAS 서버
- 웹 서버가 WAS로 요청 전달 후:
- WAS에서 비즈니스 로직 수행
- 데이터베이스(DB) 접근 및 동적 콘텐츠 생성
- 생성된 결과를 웹 서버에 반환
3. 응답(Response) 처리 흐름
4단계: WAS 서버 → 아파치 웹서버
- WAS가 처리한 결과(HTML, JSON, XML 등)를 웹 서버로 반환
- 웹 서버는 반환된 데이터를 필요에 따라 가공 (예: 추가 보안 헤더 삽입)
5단계: 아파치 웹서버 → 프록시 서버
- 웹 서버가 결과 데이터를 프록시 서버에 전달
- 프록시 서버는:
- 결과 캐싱 (요청이 반복될 경우 빠른 응답 제공)
- 보안 검사 후 응답 전송
6단계: 프록시 서버 → 클라이언트
- 최종적으로 클라이언트에게 HTTP 응답 전송
- 브라우저는 응답받은 HTML, CSS, JS를 렌더링하여 웹 페이지를 표시
4. 전체 흐름 요약
[클라이언트 요청]
⬇ HTTP/HTTPS
[프록시 서버] (보안/캐싱/로드 밸런싱)
⬇ HTTP/HTTPS
[아파치 웹서버] (정적 파일 제공 or WAS 요청 전달)
⬇ AJP/HTTP
[WAS 서버] (비즈니스 로직, DB 처리)
⬆ AJP/HTTP
[아파치 웹서버] (응답 데이터 수신)
⬆ HTTP/HTTPS
[프록시 서버] (캐싱 및 최종 필터링)
⬆ HTTP/HTTPS
[클라이언트] (웹 페이지 렌더링 및 표시)
5. 각 단계별 주요 프로토콜 및 처리 방식
단계 | 프로토콜 | 처리 내용 |
클라이언트 → 프록시 서버 | HTTP/HTTPS | 요청 수신, 보안 검사, 캐싱 확인 |
프록시 서버 → 웹 서버 | HTTP/HTTPS | 요청 전달, 로드 밸런싱 |
웹 서버 → WAS 서버 | AJP/HTTP | 동적 요청 전달, 비즈니스 로직 처리 지시 |
WAS 서버 → 웹 서버 | AJP/HTTP | 처리된 결과 반환 |
웹 서버 → 프록시 서버 | HTTP/HTTPS | 최종 콘텐츠 전달 |
프록시 서버 → 클라이언트 | HTTP/HTTPS | 캐싱된 응답 제공, 최종 보안 검사 후 응답 전송 |
6. 최적화 고려사항
- HTTPS 적용: 프록시 서버와 클라이언트, 웹 서버 간 보안 연결
- AJP 연결 시 보안: 외부 접근 제한 및 인증 설정
- 로드 밸런싱: 다중 WAS와 연결하여 트래픽 분산
- 프록시 캐싱 최적화: 자주 사용하는 콘텐츠 빠른 응답
- 역방향 프록시 활용: 내부 네트워크 보호 및 보안성 강화
7. 최종 정리
- 요청 처리: 클라이언트 → 프록시 서버(보안/캐싱) → 아파치 웹서버(정적/동적 판별) → WAS(비즈니스 로직 처리)
- 응답 처리: WAS → 아파치 웹서버 → 프록시 서버(캐싱/보안) → 클라이언트
- 프로토콜: HTTP/HTTPS, AJP 사용
여기까지 오늘은 아파치 웹서버와 프록시서버 그리고 WAS서버의 통신 방식에 대하여 알아보았습니다.
감사합니다.
반응형
'Server' 카테고리의 다른 글
Rocky_Linux에서 Dockerfile을 사용하여 컨테이너 이미지 생성하기 (0) | 2025.02.03 |
---|---|
Rocky_Linux에 Docker와 Kubernetes 설치하기_2 (0) | 2025.02.01 |
Rocky_Linux에 Docker와 Kubernetes 설치하기_1 (0) | 2025.01.31 |
[ Linux ] 리눅스 서버에서 port를 체크해보자 (0) | 2025.01.22 |
WAS_쓰레드풀[간단 정리] (1) | 2023.11.09 |