내장 톰캣과 일반 톰캣에 대한 내용을 학습하고 정리해보았습니다.
톰캣(아파치 톰캣)은 서블릿 컨테이나만 있는 웹 애플리케이션 서버이다. 톰캣은 웹 서버와 연동하여 실행할 수 있는 자바 환경을 제공하며 JSP와 자바 서블릿이 실행할 수 있는 환경을 제공하고 있다. 톰캣은 관리 툴을 이용하여 설정할 수도 있지만, XML파일을 편집하여 설정할 수도 있다. 또한 톰캣은 HTTP 서버도 자체 내장하기도 한다.
아파치는 톰캣에 내장된 웹 서버로만 웹 시스템을 구성할 수 있지만, 대규모의 사용자가 사용하는 시스템을 구축하려면 웹 서버와 연동하는 시스템을 구축하는 것이 좋다. 이때 웹 서버인 아파치 서버와는 연동모듈을 사용하여 연동하고, 연동모듈로는 mod_jk를 이용하고, 2.2버전 이후에는 mod_proxy_ajp 모듈을 사용한다.
자바 서블릿을 이용하여 데이터 요청에 대한 응답을 자바 코드로 처리하고, 해당 내용을 클라이언트에 리턴해주는 구조입니다. 이때 서블릿을 사용하는데 자바 웹 어플리케이션의 구성 요소 중 JAVA 언어를 사용하여 동적인 처리를 하는 역할을 담당합니다. 서블릿은 WAS에 동작하는 JAVA 클래스이며, HttpServlet을 상속받아야 합니다.
임베디드 톰캣(Embedded Tomcat)은 다음과 같은 특징을 가지고 있습니다
두 톰캣의 가장 다른 부분으로는 외장 톰캣에는 Virtual Host 기능이 있습니다.
host에 따라 각각 다른 루트 컨텍스트를 갖게하여 하나의 웹 어플리케이션 배포만으로 여러 어플리케이션을 운영하는 것처럼 할 수 있습니다. 위 설정을 위해서는 server.xml을 수정하면 사용할 수 있습니다.
<Host name="a.abc.com" appBase="/webapps/abc" unpackWars="true" autoDeploy="true" xmlValidation="false" xmlNamespaceAware="false"></Host>
<Host name="www.ppp.com" appBase="/webapps/ppp" unpackWars="true" autoDeploy="true" xmlValidation="false" xmlNamespaceAware="false"></Host>
내장 톰캣도 가능은 하지만, 구성하기 매우 까다로운 것으로 확인됩니다.(조금 더 확인 후 정리 예정😅)