Apache & Tomcat

썩은요플렛's avatar
Jul 30, 2024
Apache & Tomcat
 

아파치

 
  • 아파치 HTTP 서버는 정적 웹 페이지일부 동적 콘텐츠를 제공하는 웹 서버.
  • 정적 콘텐츠 제공: HTML 파일, 이미지, CSS, JavaScript 등 정적 파일을 브라우저(클라이언트)에게 제공
  • 모듈 지원: 다양한 모듈을 통해 기능을 확장 가능
 

톰캣

 
  • 서블릿 컨테이너: Servelet API를 구현해 자바 서블릿을 실행 할 수 있음
  • JSP 엔진: JSP 페이지를 컴파일하고 실행 할 수있음. (JSP - Java Server Pages : HTML 코드에 JAVA코드를 넣어 동적 웹페이지를 생성하는 웹 애플리케이션 도구)
  • JNDI 지원: 데이터베이스 연결 풀링 및 자원 관리를 위한 Java Naming and Directory Interface를 지원
  • 보안: 사용자 인증 및 권한 부여를 위한 다양한 보안 기능 제공
  • 통합 관리: 웹 애플리케이션의 배포와 관리를 위한 웹 인터페이스와 명령줄 도구를 제공
 

아파치/톰캣을 활용한 통신원리

 
notion image
 
💡
아파치와 톰캣은 소켓이 달려있다.

통신 원리

아파치와 톰캣의 통신은 주로 AJP(Apache JServ Protocol) 또는 HTTP 프록시를 통해 이루어진다. AJP는 톰캣과 같은 서블릿 컨테이너와 웹 서버 간의 통신을 위한 바이너리 프로토콜이다. 다음은 아파치와 톰캣의 통신 과정을 설명한다.
  1. 초기 설정:
      • 아파치 웹 서버: 아파치 웹 서버는 정적 콘텐츠를 제공하고, 동적 요청이 들어오면 이를 톰캣에 전달하도록 설정한다. 이를 위해 mod_proxy 또는 mod_jk와 같은 모듈을 사용한다.
      • 톰캣 서버: 톰캣은 애플리케이션을 호스팅하고, AJP 커넥터를 통해 아파치로부터의 요청을 수신하도록 설정된다.
  1. 요청 처리:
      • 사용자가 웹 브라우저에서 요청을 보낸다.
      • 아파치 웹 서버는 요청을 수신하고, URL 패턴을 기반으로 요청이 정적 콘텐츠인지 동적 콘텐츠인지 결정한다.
        • 정적 콘텐츠: 아파치가 직접 요청을 처리하고, 클라이언트에 응답.
        • 동적 콘텐츠: 아파치는 요청을 톰캣에 전달한다.
  1. AJP를 통한 통신:
      • 아파치와 톰캣 간의 통신은 AJP를 통해 이루어질 수 있다. 아파치의 mod_jk 모듈 또는 mod_proxy_ajp 모듈이 사용된다.
      • 아파치는 AJP를 통해 톰캣으로 요청을 전달.
      • 톰캣은 요청을 처리하고, 결과를 아파치에 반환한다.
      • 아파치는 톰캣으로부터 받은 응답을 클라이언트에 전달한다.
  1. HTTP 프록시를 통한 통신:
      • 아파치와 톰캣 간의 통신은 HTTP 프록시를 통해서도 이루어질 수 있다. 아파치의 mod_proxy 모듈이 사용된다.
      • 아파치는 HTTP 프로토콜을 통해 톰캣으로 요청을 전달한다.
      • 톰캣은 요청을 처리하고, HTTP 응답을 아파치에 반환.
      • 아파치는 톰캣으로부터 받은 응답을 클라이언트에 전달한다.
 
Share article

RottenYogurt's Development Blog