[톰캣 Apache Tomcat]
우선 아파치는 흔히들 말하는 웹서버이다.
정확히 말하면 웹서비스 데몬이라고 하는데 아파치는 통상 http를 이용하여 클라이언트에게 웹서비스를 제공해 준다.
쉽게 말하면 인터넷 익스플로러에서 http://~~.html 이라는 문서를 보여 달라 그러면 아파치가 내부적으로 처리를 해서 그에 맞는 결과를 html 형식으로 보여주는 역할을 하게 된다.
그런데 아파치는 정적인 페이지, 말그대로 적혀 있는데로만 보여주는 역할만 수행하는데 적합하기 때문에 게시판과 같은 사용자가 뭔가를 입력하고 거기에 따라 다른 결과를 보여주는 동적인 페이지에 대해서는 톰캣과 같이 프로그램을 수행해주는 것과 연동을 해야한다.
아파치는 동적인 처리가 필요한 문서는 톰캣과 같은 컨테이너에 넘겨주고 처리한 결과만 다시 익스플로러로 보내준다.
톰캣은 자바 서블릿 컨테이너이다. 일종의 프로그램 집합체 이다.
톰캣의 역할은 아파치에서 넘어온 동적인 페이지를 읽어들여 프로그램을 실행하고 그 결과를 다시 html로 재구성하여 아파치에게 되돌려 준다.
문서의 재구성이라고 할 수 있다.
톰캣은 서블릿 컨테이너 이며 자체 웹서버 기능도 포함하고있지만, 대부분의 사람들은 서블릿 컨테이너로써만 톰캣을 사용하고 있다.
- 웹서버와 연동하여 실행할수 있는 JAVA환경을 제공
- 웹서버로 사용되기보단 웹어플리케이션(WAS)로 사용
- 클라이언트의 요청이 들어왔을때 내부의 프로그램을 통해 결과를 만들고 다시 클라이언트에게 전달을 해주는 역할을 하는 것
왜 아파치와 함께 같이 쓰는가?
- html같은 정적인 페이지를 로딩하는데 웹 서버보다 수행속도가 느리기 때문에 아파치와 연동하여 이를 해결
(아파치 - www서버용 소프트웨어, 웹 서버의 한 종류)
- 이미지나 단순한 html파일과 같은 리소스를 제공하는 서버는 웹서버를 통하면 WAS를 이용하는 것보다 빠르고 안정적
- 톰캣은 동적인 데이터를 처리하는 서버, db와 연결되어 데이터를 주고받거나 프로그램으로 데이터 조작이 필요한 경우에는 was를 활용
- 사용자요청은 http웹 서버를 통해 받고, 내부의 프로그램은 was를 통해 처리하는식으로하면 정적인 데이터와 동적인 데이터를 효과적으로 처리가 가능
클라이언트의 요청 순서
클라이언트 > 브라우저 > 웹서버 > WAS > DB
설치환경
CentOS release 6.8 (Final)
Server version: Apache/2.4.3 (Unix)
java version "1.7.0_45"
Apache Tomcat/7.0.42
1. JAVA 설치 및 설정
# cd /usr/local/src # jdk1.7.0_45-x86_64.tar.gz \\ 설치파일 다운로드 # tar -zxvf jdk1.7.0_45-x86_64.tar.gz \\ 압축 풀기 # mv jdk1.7.0_45 /usr/local/java \\ java로 이름 변경 # vi /etc/profile \\ 해당 파일 열어 상단에 아래 내용 입력
# source /etc/profile \\ 해당 명령어를 통해 수정된 파일을 적용 # java -version \\ 해당 명령어로 자바버전 확인 , 아래처럼 나오면 자바가 잘못 연동이 제대로 안된 것 java version "1.5.0" gij (GNU libgcj) version 4.4.7 20120313 (Red Hat 4.4.7-18) Copyright (C) 2007 Free Software Foundation, Inc. This is free software; see the source for copying conditions. There is NO warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. |
* 오류발생
** 오류 ** # java -version java version "1.5.0" \\ 버전이 1.7.0이 아닌 1.5.0이 나옴 gij (GNU libgcj) version 4.4.7 20120313 (Red Hat 4.4.7-18) ** 해결방법 ** # which java \\ 현재 자바버전 확인 # ls -l /usr/bin/java \\ 자바 링크경로 확인 # unlink /usr/bin/java \\ 새로운 버전 링크지정하기 위해 기존 링크 해제 # ln -s /usr/local/java/bin/java /usr/bin/java \\ 링크 다시 걸어주기 # java -version \\ 해당 명령어로 최종확인 java version "1.7.0_45" Java(TM) SE Runtime Environment (build 1.7.0_45-b18) Java HotSpot(TM) 64-Bit Server VM (build 24.45-b08, mixed mode) |
2. Tomcat 설치 및 설정
# cd /usr/local/src # apache-tomcat-7.0.42.tar.gz \\ 다운로드 # tar -zxvf apache-tomcat-7.0.42.tar.gz # mv apache-tomcat-7.0.42 /usr/local/tomcat \\ 해당 경로에 옮기기 # vi /etc/profile \\ java가 설치되어 있어야 하며, 파란색 부분 추가
# source /etc/profile \\ 해당 명령어로 profile 수정내용 갱신 # /usr/local/tomcat/bin/startup.sh \\ 해당명령어로 해당파일 실행 , 아래처럼 메시지 나올시 정상 Using CATALINA_BASE: /usr/local/tomcat Using CATALINA_HOME: /usr/local/tomcat Using CATALINA_TMPDIR: /usr/local/tomcat/temp Using JRE_HOME: /usr/local/java Using CLASSPATH: /usr/local/tomcat/bin/bootstrap.jar:/usr/local/tomcat/bin/tomcat-juli.jar # cp -arp /usr/local/tomcat/bin/catalina.sh /etc/init.d/tomcat \\ tomcat 실행파일 init.d에 등록 # vi /etc/init.d/tomcat \\ 해당 파일 열어서 아래 내용을 추가해줘야 chkconfig 등록할때 에러발생 안함
# chkconfig –-add tomcat \\ 해당 명령어로 리부팅시 자동으로 올라오도록 설정 |
3. 방화벽 설정
# vi /etc/sysconfig/iptables \\ 8005, 8009, 8080 포트 등록
# /etc/init.d/iptables restart |
4. Java & Tomcat & Apache 연동
1) apache connector 설치 및 연동
# cd /usr/local/src # wget http://apache.mirror.cdnetworks.com/tomcat/tomcat-connectors/jk/tomcat-connectors-1.2.42-src.tar.gz # tar -zxvf tomcat-connectors-1.2.42-src.tar.gz # cd tomcat-connectors-1.2.42-src/native \\ 해당 디렉터리로 진입 # ./configure --with-apxs=/usr/local/apache/bin/apxs \\ 컴파일, 아파치경로 설정 # make && make install # cd /usr/local/apache/conf/ # vi workers.properties \\ 해당 파일생성
|
2) httpd.conf 파일 수정
아파치는 기본적으로 html을 읽고 tomcat은 그 외 파일(jsp 등)을 읽음, 부하를 줄이기 위해 분산을 시켜놓는데 아파치와 톰캣이 각각 다른 포트를 쓰게하고
아파치 포트로 들어온 jsp파일 요청 내용을 톰캣 포트로 링크 걸어주는 것는 것이다. 이를 연결해주는 것이 mod_jk
# vi /usr/local/apache/conf/httpd.conf
|
3) 가상호스트 설정
가상호스트설정없이 기본 도큐먼트로 설정이 되어있는경우 해당 IP로 질의하였을때 아파치와 톰캣이 연동되어있기 때문에 톰캣화면이 보여지게 된다.
# vi /usr/local/apache/conf/extra/httpd-vhosts.conf
vhost 설정은 일반설정과 동일하지만 하단에 JkMount 를 이용하여 인식시켜줘야 한다. 그래야 아파치로 jsp코드를 질의하였을 때 정상적으로 jsp같은코드들을 인식할수 있다. 위처럼 php와 jsp 모두를 사용하고 싶다면 아파치에서 php를 호출하고 톰캣에서 jsp를 호출 하도록 구성하여 상호 보완적 동작을 수행하도록 구성해야 한다. |
4) 톰캣 Context path 설정
# vi /home/java/index.jsp \\ index.jsp 파일 생성
# vi /usr/local/tomcat/conf/server.xml
# cd /usr/local/tomcat/conf/Catalina/ \\ server.xml에서 설정한 hostname으로 만들어져있음 합계 8 drwxr-xr-x 2 root root 4096 2017-10-15 00:26 [아이피 or 도메인] drwxr-xr-x 2 root root 4096 2017-10-14 22:51 localhost # cd 115.68.221.178 # vi ROOT.xml \\ ROOT.xml 생성
# /etc/init.d/apachectl restart # /etc/init.d/tomcat stop # /etc/init.d/tomcat start |
5) 접속확인
* 참고 (톰캣 로드밸런싱 설정)
http://fruitdev.tistory.com/25
'서버 & 시스템 > Linux' 카테고리의 다른 글
vsftpd 설치 및 설정 (1) | 2017.11.27 |
---|---|
MySQL binlog 설정 및 삭제, 복구 (0) | 2017.10.28 |
iptables 설정 (0) | 2017.10.11 |
WordPress 설치 (0) | 2017.10.10 |
phpMyAdmin 설치 및 설정 (0) | 2017.10.10 |