PHP, JSP 등의서버 쪽 개발에 경험이 있거나, 웹 사이트를 정적으로 배포해본 사람이면 Apache와 Tomcat에 대해서 들어본 적이 있거나 사용해본 적이 있을 것이다.
회사에서 인프라 업무를 맡게 되어서 Front와 Server를 배포할 서버를 구축하는 등의 일을 하는 중에 Apache와 Tomcat에 대해서 자세히 알아야할 필요가 있을 거 같아서 공부를 하면서 정리한 내용을 포스팅한다.
1. Apache
우리가 흔히 말하는 Apache는 소프트웨어가 아닌 Apache Software Foundation, ASF를 의미하며 해당 재단에서 만든 것이 우리가 많이 사용하고 말하는 Apache Http Server이다.
Apache Http Server는 Web Server인데, Web Server는 WAS와 달리 정적인 처리를 하는 서버로, Html, Css, Image와 같은 Static Resource를 클라이언트의 요청에 따라 응답하는 서버이다.
즉 Apache Server란 클라이언트에서 요청하는 HTTP 요청을 처리하는 Web Server를 의미하며, Html, CSS와 같은 Static Resource만 처리할 수 있기 때문에 동적인 자원을 처리하는 Tomcat이 등장한 것 같다.
Apache Server는 현재 세계에서 가장 많이 쓰는 Web Server 중 하나이며, 다양한 기능이 있고, 구축이 쉽다는 이유로 사용자가 많이 사용하지만, Apache 자체로만 많이 무겁고, Squid와 함께 Slowloris 취약점이 발견되었기에, 대형 사이트는 Nginx, lls를 주로 사용한다고 한다.
2. Tomcat
Tomcat은 ASF의 Application Server로, 자바 서블릿을 실행 시키고, JSP 코드가 포함된 Web Page를 만들어준다. Apache와 다른 점은 WAS이기에, DB 연결 및 다른 프로그램과 상호 작용이 가능하다.
즉 Tomcat은 WAS이기에, 서버로 넘어오는 Dynamic Resource 요청을 처리할 수 있는 서버이다. 즉 Dynamic Page를 읽고 프로그램을 실행 하고 그 결과를 HTML로 구성하여 Apache에게 되돌려준다.
Tomcat은 내부 Web server와 함께 독립적으로 사용될 수 있지만 Apache나 llS등 다른 Web Server와도 사용이 가능하며, Tomcat을 실행하기 위해서는 JRE 1.1 이상의 Java Run Time 환경이 필요하다.
3. 정리하며..
위의 내용을 정리하자면, Apache는 정적 요청을 처리하기 위한 Web Server이며, Tomcat은 동적 요청을 처리하기 위한 WAS이고, 같은 ASF에서 출시하였다. Apahce Tomcat이라고 불리는 이유는 Web Server와 WAS를 같이 쓰는 경우가 대부분이며 두 가지를 함께 자주 사용하기 떄문이다.
'DevOps > Server' 카테고리의 다른 글
Turborepo로 프로젝트 구성하기 (0) | 2024.05.07 |
---|---|
Serverless에 대해서 알아보자! (0) | 2023.04.21 |
Web Server와 WAS에 대해 알아보자! (0) | 2023.01.01 |