프로그래밍/Servlet, JSP

아파치와 톰캣을 같이 사용하는 이유

abfc 2016. 9. 29.
반응형





아파치와 톰캣을 같이 사용하는 이유
를 알아보기 전에 간단히 아파치와 톰캣에 대해 설명해보자면


아파치
 - 아파치는 설치한 컴퓨터를 웹 서버로 만들어주는 역할을 합니다. 외부에서 랜선을 타고 HTTP 프로토콜을 이용한 호출 신호가 들어오면 아파치 설정에 따라 웹 페이지를 전송해주는 일을 주로 하는 프로그램입니다.
 - 이미지나 단순 html파일 같은 정적인 데이터를 처리
 - 출시된지 오래되었고, 호환성이 높으며 다양한 모듈이 많아 압도적인 점유율을 보이고 있음
 - 그러나, 아파치를 비롯한 IIS, Nginx같은 웹서버는 JSP나 PHP같은 응용 프로그래밍 언어를 해석할 수 없기 때문에 아파치 소프트웨어 재단에서 Java 기반 서버 사이드 언어를 처리할 수 있는 엔진을 개발함 -> WAS(Web Application Server)인 Tomcat 탄생


톰캣
 - 톰캣은 'WAS(Web Application Server)'라고 해서 자바코드를 이용해 HTML페이지를 동적으로 생성해주는 프로그램
 - WAS는 웹서버와 웹 컨테이너의 결합으로 다양한 기능을 컨테이너에 구현하여 다양한 역할을 수행할 수 있는 서버
 - 클라이언트의 요청이 있을 때 내부의 프로그램을 통해 결과를 만들어내고 이것을 다서 클라이언트에 전달해주는 역할을 하는 것이 웹 컨테이너
 - 아파치와 톰캣은 컨테이너 기능이 가능하냐 하지 않느냐의 차이가 있음

이미지출처 : http://gap85.tistory.com/45




 위의 작업들이 주된 목적이었으나 톰캣 6버전 이상부터는 조금씩 웹서버의 기능이 추가되어서 현재는 톰캣만 설치해도 어느정도의 웹서버 역할을 해줍니다. 하지만, 아직도 많은 JSP를 사용하는 웹 프로그래머들은 아파치 + 톰캣을 병행해서 사용합니다. 그 이유는

 - 정적 데이터를 처리할 때 아파치의 성능이 더 좋습니다. 톰캣도 좋아지고 있지만, 이미지나 CSS같은 정적 데이터는 아파치에서 처리하고, 톰캣은 본 목적인 동적 페이지 생성에 주력하는게 효율면에서 좋다고 생각합니다.
 - 리눅스 웹서버에서 1024이하의 포트를 사용하기 위해서는 root 권한이 있어야 하는데, 톰캣을 이용해서 80번 포트를 운용하는건 무리가 있다고 하네요.
 - 다른 언어 도입에 아파치 사용이 불가피합니다. 예를들어 프로젝트 개발 인원이 JSP개발자와 PHP개발자가 있을때 톰캣만 사용중이라면 PHP개발자는 필요가 없어지게 됩니다. 하지만 아파치+톰캣 구조에서는 PHP를 설치하고 아파치에 연결하면 여러 서버 사이드 언어로 작성이 가능해집니다.


**

아파치 - 정적인 데이터를 처리, 이미지나 단순 html파일을 아파치를 통해 처리하면 WAS보다 빠르고 안정적

톰캣(WAS) - 동적인 데이터를 처리, DB와 연결되어 데이터를 주고 받거나 프로그램으로 데이터 조작이 필요한 경우에 사용







반응형

댓글

💲 추천 글