Apache & Tomcat
Jul 30, 2024
아파치
- 아파치 HTTP 서버는 정적 웹 페이지와 일부 동적 콘텐츠를 제공하는 웹 서버.
- 정적 콘텐츠 제공: HTML 파일, 이미지, CSS, JavaScript 등 정적 파일을 브라우저(클라이언트)에게 제공
- 모듈 지원: 다양한 모듈을 통해 기능을 확장 가능
톰캣
- 서블릿 컨테이너: Servelet API를 구현해 자바 서블릿을 실행 할 수 있음
- JSP 엔진: JSP 페이지를 컴파일하고 실행 할 수있음. (JSP - Java Server Pages : HTML 코드에 JAVA코드를 넣어 동적 웹페이지를 생성하는 웹 애플리케이션 도구)
- JNDI 지원: 데이터베이스 연결 풀링 및 자원 관리를 위한 Java Naming and Directory Interface를 지원
- 보안: 사용자 인증 및 권한 부여를 위한 다양한 보안 기능 제공
- 통합 관리: 웹 애플리케이션의 배포와 관리를 위한 웹 인터페이스와 명령줄 도구를 제공
아파치/톰캣을 활용한 통신원리
아파치와 톰캣은 소켓이 달려있다.
통신 원리
아파치와 톰캣의 통신은 주로
AJP(Apache JServ Protocol)
또는 HTTP 프록시를 통해 이루어진다. AJP는 톰캣과 같은 서블릿 컨테이너와 웹 서버 간의 통신을 위한 바이너리 프로토콜이다. 다음은 아파치와 톰캣의 통신 과정을 설명한다.- 초기 설정:
- 아파치 웹 서버: 아파치 웹 서버는 정적 콘텐츠를 제공하고, 동적 요청이 들어오면 이를 톰캣에 전달하도록 설정한다. 이를 위해
mod_proxy
또는mod_jk
와 같은 모듈을 사용한다. - 톰캣 서버: 톰캣은 애플리케이션을 호스팅하고, AJP 커넥터를 통해 아파치로부터의 요청을 수신하도록 설정된다.
- 요청 처리:
- 사용자가 웹 브라우저에서 요청을 보낸다.
- 아파치 웹 서버는 요청을 수신하고, URL 패턴을 기반으로 요청이 정적 콘텐츠인지 동적 콘텐츠인지 결정한다.
- 정적 콘텐츠: 아파치가 직접 요청을 처리하고, 클라이언트에 응답.
- 동적 콘텐츠: 아파치는 요청을 톰캣에 전달한다.
- AJP를 통한 통신:
- 아파치와 톰캣 간의 통신은 AJP를 통해 이루어질 수 있다. 아파치의
mod_jk
모듈 또는mod_proxy_ajp
모듈이 사용된다. - 아파치는 AJP를 통해 톰캣으로 요청을 전달.
- 톰캣은 요청을 처리하고, 결과를 아파치에 반환한다.
- 아파치는 톰캣으로부터 받은 응답을 클라이언트에 전달한다.
- HTTP 프록시를 통한 통신:
- 아파치와 톰캣 간의 통신은 HTTP 프록시를 통해서도 이루어질 수 있다. 아파치의
mod_proxy
모듈이 사용된다. - 아파치는 HTTP 프로토콜을 통해 톰캣으로 요청을 전달한다.
- 톰캣은 요청을 처리하고, HTTP 응답을 아파치에 반환.
- 아파치는 톰캣으로부터 받은 응답을 클라이언트에 전달한다.
Share article