[Linux] Apache2 Installation, and Configuration / 아파치2 설치 및 설정

위 링크를 통해 Apache2 설치를 마쳤고, 톰캣 연동을 원하거나, 톰캣만 설치하여 웹서버를 운용하고 싶을 때 도움되는 글이다.

톰캣은 아파치재단에서 만든 웹 애플리케이션 서버로 JSP, 자바 서블릿이 실행될 수 있는 환경을 제공한다.

Javascript 서버를 구동하는데 Nodejs가 필요한것 처럼 Java 서버를 구동하려면 Tomcat이 필요하다.


Tomcat 9.0 Installation

$ apt-get install openjdk-8-jre-headless
$ apt-get install openjdk-8-jdk
$ apt-get install tomcat9

위 명령을 실행하여 tomcat9을 설치할 수 있다.

톰캣은 Java를 실행시키는 웹서버로 자바 설치도 필요하다. 만약 제대로 설치가 안된다면

$ apt-get update
$ apt-get -y upgrade

를 통해 시스템을 최신 버전으로 유지하자.

윈도우에서 흔히 사용하는 환경변수를 리눅스에서 설정해줄 수 있지만, 안해도 웹서버 유지에 큰 문제는 되지 않는다.

$ vi /etc/profile
    # /etc/profile
JAVA_HOME=/usr/lib/jvm/java-8-openjdk-amd64 # 혹은 설치한 자바 경로
export JAVA_HOME
PATH=$PATH:$JAVA_HOME/bin
CLASSPATH=$CLASSPATH:$JAVA_HOME/lib

이후 톰캣 설정해야하는데, 웹앱 디렉토리 설정은 본 게시글의 하단에서 설명하겠다.

우선 톰캣의 사용 유저와 그룹을 설정하여 해당 유저와 그룹을 통해 프로세스를 관리할 수 있도록 하고, 메모리를 설정해 주자.

$ vi /etc/default/tomcat9
    # /etc/default/tomcat9
TOMCAT8_USER=root
TOMCAT8_GROUP=tomcat9
JAVA_OPTS="-Djava.awt.headless=true -Xmx1024m  -Djava.security.egd=file:/dev/./urandom"

JAVA_OPTS를 설명하자면,

Djava.awt.headless=true

- 리눅스 환경에서 GUI 클래스를 사용할 수 있게 한다.

Xmx1024m

- 최대 JVM이 1024Mb를 가질 수 있다. (Xms는 최소)

Djava.security.egd

- 자바 응용 프로그램은 시작시 난수를 이용해 임의의 값(세션 아이디 같은)을 생성하는데, 리눅스 시스템에서는 난수 생성을 위해서 /dev/urandom을 사용한다. 따라서 해당 경로를 설정해주는 것이다.


/etc/tomcat9/server.xml

이후 웹앱에 대한 설정을 해야한다. server.xml파일을 통해 내가 등록할 웹 앱들을 관리할 수 있다. 많은 옵션들이 존재하지만, 별도로 설정하지 않는다면 다음 설정을 따르길 추천한다.

<?xml version='1.0' encoding='utf-8'?>
<Server port="8005" shutdown="SHUTDOWN">
    <Listener className="org.apache.catalina.startup.VersionLoggerListener" /> 
    <Listener className="org.apache.catalina.core.JreMemoryLeakPreventionListener" />
    <Listener className="org.apache.catalina.mbeans.GlobalResourcesLifecycleListener" />
    <Listener className="org.apache.catalina.core.ThreadLocalLeakPreventionListener" />

    <Service name="Catalina">
        <Connector port="웹서버포트" protocol="HTTP/1.1"
            connectionTimeout="20000"
            URIEncoding="UTF-8"
            redirectPort="443" />

        <Engine name="Catalina" defaultHost="localhost">
            <Host name="도메인"  appBase="웹앱경로"
                unpackWARs="true" autoDeploy="false"
                xmlValidation="false" xmlNamespaceAware="false">
            </Host>
        </Engine>
    </Service>
</Server>

여러 포트를 이용하고 싶다면, 여러개의 Connector를 생성해주면 된다. 단, 같은 서비스 내에 여러개의 Connector가 존재하면 오류가 생길 수 있으니, 여러 포트를 이용할 경우 서비스를 여러개 생성하는걸 추천한다.

이후

$ systemctl restart tomcat8
$ systemctl restart tomcat9

둘 중 버전이 맞는걸 통해 잘 실행되는지 확인하면 된다.

+ Recent posts