아파치와 톰캣을 같이 사용하는 이유? (요약)
Apache(웹 서버)는 정적인 데이터를 처리하는 서버다.
따라서, 이미지나 단순 html파일과 같은 리소스를 제공하는 서버는 Apache(웹 서버)를 통하면 Tomcat(WAS)을 이용하는 것보다 빠르고 안정적이다.
Tomcat(WAS)은 동적인 데이터를 처리하는 서버다.
따라서, DB와 연결되어 데이터를 주고 받거나 프로그램으로 데이터 조작이 필요한 경우에 이용하는 것이 좋다.
"정적"
웹서버(web server)
리눅스에서는 httpd 로 명명지어져 배포됨
80 포트를 사용
처리속도 Fast
구조 Simple
트래픽 과부화에 강함
정적 데이터만 처리 가능
다른 서비스와 상호작용 불가능
"동적"
"컨테이너", "웹 컨테이너", "서블릿 컨테이너"
웹 서버와 웹 컨테이너의 결합
WAS(웹 애플리케이션 서버)
JSP와 서블릿 처리, 서블릿의 수명 주기 관리, 요청 URL을 서블릿 코드로 매핑, HTTP 요청 수신 및 응답, 필터 체인 관리 등을 처리
WAS
- "web Application Server"
- 여러 web client의 요구를 web서버가 감당할 수 없는 기능을 구조적으로 web서버와 분리하기 위해 만들어짐
- 동적인 데이터를 처리하는 서버, DB 연결, 데이터 조작 등의 처리를 담당
'톰캣'이 아닌, '아파치 톰캣'이라고 불리는 이유?
bin
: 톰캣 실행에 필요한 실행,종료시키는 스크립트 파일들이 위치
startup.bat
: 톰캣을 실행 (내부적으로 catalina.bat을 실행)shutdown.bat
: 톰캣을 정지 (내부적으로 catalina.bat을 실행)conf
: server.xml 및 서버 전체 설정과 관련한 톰캣 설정 파일들이 위치
server.xml
: 서버설정과 관련한 내용web.xml
: 서버가 올라갈때 가장 먼저 읽는 파일로 중요한 xml파일lib
logs
: 톰캣 실행 로그파일들이 위치
temp
: 톰캣이 실행되는 동안 임시 파일이 위치
webapps
: 웹 어플리케이션이 위치
work
: sp파일을 서블릿형태로 변환한 java파일과 class파일을 저장하는 위치
팁
- bin 이 들어간 폴더가 있다면 : 실행 파일
- conf 이 들어간 폴더가 있다면 : 설정 파일
이라고 간주하면 된다
데이터 흐름 유동적
여러 서비스 가능(DB ...)
(아파치에 비해) 속도 Slow
추가 비용 발생
트래필 과부화에 약함
아파치 & 톰캣 포트 관련
참고: Port 포트