2023년 1월 1일
08:00 AM
Buffering ...

최근 글 👑

Apache Tomcat이란

2023. 3. 26. 01:06ㆍ취약 웹 개발/Tomcat + JSP

WEB

기본적으로 정적인 웹 사이트를 제공함 -> 그럼 동적인 웹 사이트는 제공할 수 없다고 생각할 수 있다.

하지만, 제공할 수 있다. 예를 들어 아파치와 PHP, MySQL을 연동해 PHP 웹 사이트를 제공할 수 있고,

이러한 방식을 APM(Apache + PHP + MySQL)방식 이라고 한다. 

아파치 (Apache)

웹 서버로 클라이언트 요청이 왔을때만 응답하는 정적 웹페이지이다.

  • 웹서버 = 80번 포트로 클라이언트 요청(POST, GET 등)이 왔을 때 응답
  • 정적인 데이터 = HTML, CSS, 이미지 등
  • WEB

WAS

Web Application Server의 약자로 자바, JSP 등으로 만든 웹 또는 API 애플리케이션을 실행하여 동적인 웹 사이트를 제공할 때 사용함

웹과 서버 사이에서 동적으로 작동하는 프로그램을 WAS라고 하고, 이 WAS의 역할을 하는 프로그램 중 하나가 톰캣이다.

 

톰캣 (Tomcat)

동적인 웹을 만들기 위한 웹 컨테이너, 서블릿 컨테이너라고 불리며, JSP, ASP, PHP 등은 톰켓에게 전달한다.

  • DB연결, 데이터 조작, 다른 응용프로그램과의 상호작용이 가능
  • WAS

같이 쓰는 이유

WAS로만 운영할 수 있는 동적페이지를 WEB과 같이 쓰는 이유는

 

1. Reverse Proxy

  • 프록시는 자신의 아이피(ip) 주소를 숨기는 행위
  • 서버와 클라이언트 사이에 프록시를 두고 프록시를 통해 데이터를 주고받음
  • Forward Proxy는 서버에 방문하는 클라이언트의 주소를 감춤
  • Reverse Proxy는 클라이언트에게 서버의 주소를 감춤
  • Reverse Proxy를 사용하는 것은 서버가 보안의 이유로 서버 내부 구조를 감추기 위함
  • 이러한 Reverse Proxy를 웹 서버가 담당

 

2. 로드 밸런싱

  • 클라이언트의 요청에 따른 처리를 동작 중인 여러 WAS에게 적절히 분배하는 것
  • 톰캣과 같은 WAS 서비스를 하나만 운영하면 WAS 프로그램이 다운되거나,
    업데이트되는 등 WAS 프로그램의 사용이 불가할 때 문제가 발생
  • 이러한 문제를 방지하기 위해 여러 개의 WAS 프로그램으로 서버를 운영
  • 이러한 로드 밸런싱, 즉 WAS의 자원 분배는 웹 서버가 담당

 

3. 캐싱

  • Reverse Proxy의 캐시를 의미
  • 서버로 찾아오는 클라이언트들이 자주, 반복적으로 요청하는 리소스들을 프록시 서버에 저장하고 제공하는 것
  • 이러한 캐싱을 웹 서버가 담당

 

4. 주기적인 체크

  • 웹 서버에 존재하는 수많은 모듈을 사용해 WAS 서비스가 정상적으로 동작하고 있는지 체크

Flow

'취약 웹 개발 > Tomcat + JSP' 카테고리의 다른 글

Java Servlet  (0) 2023.03.26
Tomcat DB 연동  (0) 2023.03.26
Tomcat의 구조  (0) 2023.03.26