본문 바로가기
Server

아파치 웹서버와 프록시서버 그리고 WAS서버의 통신은 어떻게 동작할까?

by Lcoding 2025. 2. 26.
반응형

 

안녕하세요. 

 

오늘은 아파치 웹서버와 프록시서버 그리고 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서버의 통신 방식에 대하여 알아보았습니다.

 

감사합니다.

반응형

# 로딩 화면 동작 코드(Code) 설정하기
loading