본문 바로가기

ETC/etc

톰캣과 아파치를 연동하는 이유는


톰캣과 아파치를 연동
하는 이유는

연동이라고 해서 대단한건 아닙니다. 먼저 아파치가 대기하고 있다가 서블릿요청이 들어오면 톰캣에게 던져줄 뿐이죠. 포트 또한 8080인 이유는 다른 웹서버와의 충돌을 방지하기 위한 설정일뿐 중요한건 아니구요. 얼마든지 기본 80포트로도 잡을 수 있지요..

**톰캣과 아파치를 연결하면 html은 아파치로 jsp는 아파치가 톰캣한테 줘버리죠.

**특별히 웹서비스를 하실것이 아니라면 괜히 연동하느라 힘빼실것 없습니다.

사실 톰켓 자체에 웹 서버 기능이 내장되어있기 떄문에 톰캣만 사용하더라도 JSP가 실행되는 웹 서버를 구성할 수 있습니다. 하지만 보통은 톰켓에 아파치를 연동하는데, 그 이유는 톰켓의 웹 서버 기능은 아주 기본적인 기능만 하기 때문에 아파치와 연동하여 아파치가 가지고 있는 다양한 웹 서버 기능을 이용하기 위하여입니다.

톰켓이 무엇인지를 물어보셨는데, JSP/서블릿 컨테이너 중에 하나로서, 사용자에게 JSP요청을 받으면 서블릿으로 바꾸어 이를 실행하는 역할을 합니다. (그리고 서블릿요청을 받으면 이를 실행을 하죠.) 쉽게 말하여 JSP페이지를 웹 서버에 요청을 하면 이 페이지를 해석하고 실행하는 역할을 하는 것입니다. 더 쉽게 말하면, 웹 서버에 있는 JSP문서를 실행시키면 이를 작동하는 것이 톰켓이죠^^

그리고 아파치는 웹 서버로서 사용자의 요청을 받아 처리를 합니다. 아파치가 요청을 받았는데 이것이 JSP문서 또는 서블릿이다, 한다면 이를 톰켓으로 넘기죠.^^

JSP코딩시에는 톰켓만 이용하여 충분히 가능하지만 톰켓의 웹 서버는 기능도 적고 많은 사용자가 요구를 할 때 부하가 많이 걸립니다. 따라서 일반적인 목적 (JSP를 실행하는 웹 서버) 에서는 아파치를 웹 서버로 이용하고 단지 톰켓은 JSP/서블릿 컨테이너 기능만 수행하게 하여 이용을 하는 것이죠^^

결론은 톰캣을 설치하는 이유는...아파치는 JSP를 처리를 못하기 때문에 JSP를 받아서 톰캣에서 처리하고 다시 아파치로 넘겨주는 그런 작업을 하는것이다!

아파치의 기본 포트는 80 이고 톰캣의 기본 포트는 8080 이다. 이렇게 아파치와 톰캣의 기본포트가 다른 것은 아파치와 톰캣이 연동되어 있지 않을 경우이다.

클라이언트가 80포트로 요청을 보내면 아파치가 응답해 줄것이고, 8080포트로 요청을 보내면 톰캣이 응답해 줄것이다.

아파치와 톰캣을 연동했을 경우에는 기본적으로 80포트로 요청을 받아들인다. 현재 호스팅 받고 있는 도메인으로 8080 요청을 보냈으나 '페이지를 표시할 수 없음'메시지를 보내온다. 아파치와 톰캣을 연동한 후에는 8080 포트를 사용할 수 없거나 호스팅 업체에서 설정을 변경해서 그럴것이다.

 실제 서비스시 모든 요청은 80포트를 통하기 때문에 8080포트는 신경쓰지 않아도 된다.

클라이언트가 요청한 정보가 정적인 페이지일 경우 아파치가 직접 처리후 응답을 보내게 되고동적인 페이지일 경우 톰캣에게 요청을 넘겨서 톰캣이 처리후 정적인 페이지를 아파치에 전달한다. 아파치는 정적인 페이지를 80포트를 통해서 클라이언트에게 보내는 것이다.

클라이언트가 80포트로 요청을 날렸는데 8080포트를 통해서 응답이 날아올까? 아닐거라고 본다.