우분투 14.04 LTS에 Tomcat 도입

Tomcat이란?



Java Servlet이나 JavaServer Pages(JSP)를 실행하기 위한 Web Container입니다.
또한 Tomcat은 단독으로 웹 서버 역할을 할 수 있습니다.
오픈 소스 소프트웨어이므로 누구나 자유롭고 무료로 이용, 변경, 재배포할 수 있습니다.



※이 그림에서는 Web 서버도 이용하고 있습니다만, 그 이유에 대해서는 또 나중에 설명합니다.

보충


  • Java Servlet
    Java로 작성된 서버에서 웹 페이지 등을 동적으로 생성하고 데이터 처리를 수행하는 프로그램.
  • JavaServer Pages(JSP)
    HTML에 Java 코드를 포함하고 웹 서버에서 동적으로 웹 페이지를 생성하고 클라이언트에 반환하는 프로그램.

    개발 환경


  • 우분투 14.04 LTS
  • Tomcat 8.0.33
  • JDK 1.8.0
  • Apache 2.4.7

  • 필요한 소프트웨어 설치



    JDK 설치


    [email protected]:/# curl -LO -H "Cookie: oraclelicense=accept-securebackup-cookie" \
    "http://download.oracle.com/otn-pub/java/jdk/8u77-b03/jdk-8u77-linux-x64.tar.gz"
    [email protected]:/# tar zxvf jdk-8u77-linux-x64.tar.gz
    [email protected]:/# mkdir /usr/java
    [email protected]:/# mv jdk1.8.0_77 /usr/java/jdk1.8.0_77
    [email protected]:/# vi /etc/profile
    
    # 最終行に追記
    export JAVA_HOME=/usr/java/jdk1.8.0_77
    export PATH=$PATH:$JAVA_HOME/bin
    export CLASSPATH=.:$JAVA_HOME/jre/lib:$JAVA_HOME/lib:$JAVA_HOME/lib/tools.jar
    
    [email protected]:/# source /etc/profile
    

    Tomcat 설치


    [email protected]:/# curl -O http://ftp.jaist.ac.jp/pub/apache/tomcat/tomcat-8/v8.0.33/bin/apache-tomcat-8.0.33.tar.gz
    [email protected]:/# tar zxvf apache-tomcat-8.0.33.tar.gz
    [email protected]:/# mv apache-tomcat-8.0.33 /opt/tomcat8
    [email protected]:/# chown -R tomcat8 /opt/tomcat8
    

    환경 변수 설정 (선택 사항)



    Tomcat에는 환경 변수가 있으며 루트 디렉토리, 인스턴스 및 JDK 디렉토리를 지정할 수 있습니다.

    CATALINA_HOME



    설치된 Tomcat의 루트 디렉토리를 지정합니다. 지정하지 않으면 Tomcat 시작 스크립트 (catalina.sh)의 상위 디렉토리가 설정됩니다.

    CATALINA_BASE (option)



    Tomcat 인스턴스의 디렉토리. 지정이 없는 경우는, CATALINA_HOME가 된다.

    JAVA_HOME



    JDK 홈 디렉토리

    지정 방법은 여기 의 기사가 참고가 될까 생각합니다.

    Tomcat 시작, 중지



    시작


    [email protected]:/# /opt/tomcat8/bin/startup.sh
    Using CATALINA_BASE:   /opt/tomcat8
    Using CATALINA_HOME:   /opt/tomcat8
    Using CATALINA_TMPDIR: /opt/tomcat8/temp
    Using JRE_HOME:        /usr/java/jdk1.8.0_71
    Using CLASSPATH:       /opt/tomcat8/bin/bootstrap.jar:/opt/tomcat8/bin/tomcat-juli.jar
    Tomcat started.
    

    그리고, http://ID_ADDRESS:8080
    다음 화면이 표시되면 성공



    정지


    [email protected]:/# /opt/tomcat8/bin/shutdown.sh
    Using CATALINA_BASE:   /opt/tomcat8
    Using CATALINA_HOME:   /opt/tomcat8
    Using CATALINA_TMPDIR: /opt/tomcat8/temp
    Using JRE_HOME:        /usr/java/jdk1.8.0_71
    Using CLASSPATH:       /opt/tomcat8/bin/bootstrap.jar:/opt/tomcat8/bin/tomcat-juli.jar
    

    버전 확인


    [email protected]:/# /opt/tomcat8/bin/version.sh
    Using CATALINA_BASE:   /opt/tomcat8
    Using CATALINA_HOME:   /opt/tomcat8
    Using CATALINA_TMPDIR: /opt/tomcat8/temp
    Using JRE_HOME:        /usr/java/jdk1.8.0_71
    Using CLASSPATH:       /opt/tomcat8/bin/bootstrap.jar:/opt/tomcat8/bin/tomcat-juli.jar
    Server version: Apache Tomcat/8.0.33
    Server built:   Mar 18 2016 20:31:49 UTC
    Server number:  8.0.33.0
    OS Name:        Linux
    OS Version:     3.13.0-85-generic
    Architecture:   amd64
    JVM Version:    1.8.0_71-b15
    JVM Vendor:     Oracle Corporation
    

    Apache (Web server)와 협력



    왜 협력하는가?



    Tomcat은 일단 웹 서버 역할을 할 수 있습니다.
    하지만 정적 콘텐츠 처리가 느리기 때문에 (js,css,jpg 등) 정적 콘텐츠는 보다 빠른 웹 서버가 처리하고 동적 콘텐츠만을 tomcat이 처리하는 방식을 취하는 경우가 많다. 입니다.

    그 외에는 Apache등의 Web 서버를 1대 두고, Tomcat가 탑재된 서버(인스턴스)를 복수대 세운다고 하는 스케일링을 실시하는 것도 Web 서버와 제휴시키는 사용법도 있습니다.

    협력 방법



    Apache 설치
    [email protected]:/# apt-get install apache2
    

    AJP 모듈 사용
    ※ AJP 모듈 : 웹 서버와 상호 교환하기 위한 프로토콜, 디폴트 포트는 8009
    [email protected]:/#  a2enmod proxy_ajp
    [email protected]:/# service apache2 restart
    [email protected]:/home/vagrant# vi /etc/apache2/conf-enabled/proxy_ajp.conf
    
    # 追加
    ProxyPass /tomcat8/ ajp://IP-ADDRESS:8009/
    
    [email protected]:/#  a2enmod proxy_ajp
    [email protected]:/# service apache2 restart
    

    그리고, http://ID_ADDRESS/tomcat8/
    아래 화면이 표시되면 Apache를 통해 Tomcat에 액세스 할 수 있으므로 성공



    참고 자료



    우분투의 Tomcat 기억

    Tomcat 8 : JAVA 애플리케이션 서버

    Why use Apache Web Server in front of Glassfish or Tomcat?

    좋은 웹페이지 즐겨찾기