Apache Tomcat 9.0 서블릿/JSP 컨테이너 실행
Apache Tomcat 9.0에는 Java Standard Edition Runtime Environment(JRE 버전 8 이상)이 필요합니다.
JRE 8 이상으로 실행
1. JRE(Java SE Runtime Environment) 다운로드 및 설치
- 자바 SE 런타임 환경(JRE) 다운로드, 릴리스 버전 8 이상
- 패키지에 포함된 지침에 따라 JRE를 설치합니다.
- JRE 대신에 JDK(Java Development Kit)를 사용할 수도 있습니다.
2. 아파치 톰캣 다운로드 및 설치
- Tomcat의 바이너리 배포판을 다운로드합니다.
- 바이너리 배포판의 압축을 풀어 줍니다. (관습적으로 "apache-tomcat-[version]" 이름을 가집니다.)
- 이 문서의 나머지 부분에서 "CATALINA_HOME" 환경 변수는 해당 파일("apache-tomcat-[version]")의 전체 경로를 참조하는 데 사용됩니다.
3. 환경 변수 구성
Tomcat은 Java 애플리케이션이며 환경 변수를 직접 사용하지 않습니다.
환경 변수는 Tomcat startup 스크립트에서 사용됩니다.
스크립트는 Tomcat을 시작하는 명령을 준비하기 위한 환경 변수를 사용합니다.
- CATALINA_HOME(필수) 및 CATALINA_BASE(선택) 설정하기
- CATALINA_HOME 환경 변수는 Tomcat의 "바이너리" 배포판의 루트 디렉토리 경로를 설정한다.
- Tomcat startup 스크립트는 위 환경 변수가 설정되지 않았을 경우, startup 스크립트의 경로를 기반으로 환경 변수를 자동으로 설정하는 몇 가지 논리가 있습니다. 모든 상황에서 논리가 작동하지 않을 수 있기 때문에 변수를 명시적으로 설정하는 것이 좋습니다.
- CATALINA_BASE 환경 변수는 Tomcat의 "active configuration" 루트 디렉토리의 위치를 지정합니다. 선택 사항이며 기본은 CATALINA_HOME과 동일합니다.
- CATALINA_HOME 및 CATALINA_BASE 변수에 별개의 값을 사용하는 것은 추가 업그레이드 및 유지 관리를 단순화하기 위해 권장됩니다.
- JRE_HOME 또는 JAVA_HOME 설정(필수)
- 이 변수는 Tomcat을 시작하는 데 사용되는 Java Runtime Environment 또는 Java Development Kit의 위치를 지정하는 데 사용됩니다.
JRE_HOME 변수는 JRE의 위치를, JAVA_HOME 변수는 JDK의 위치를 지정하는 데 사용됩니다. - JAVA_HOME을 사용하면 추가적인 시작 옵션을 제공합니다. JRE_HOME이 사용될 때는 허용되지 않습니다.
- JRE_HOME과 JAVA_HOME을 모두 지정하면 JRE_HOME이 사용됩니다.
- 이러한 변수를 지정하기 위해 권장되는 위치는 "setenv" 스크립트입니다. "setenv" 스크립트는 아래에서 설명 합니다.
- 이 변수는 Tomcat을 시작하는 데 사용되는 Java Runtime Environment 또는 Java Development Kit의 위치를 지정하는 데 사용됩니다.
- 기타 변수(선택 사항)
- 위에서 설명한 네 가지 외에도 다른 환경 변수가 존재합니다. 각각의 목록과 설명을 보려면 catalina.bat 또는 catalina.sh 스크립트 상단의 주석을 참조하세요.
- 자주 사용되는 변수 중 하나는 CATALINA_OPTS입니다. Tomcat을 시작하는 java 명령에 대한 추가 옵션을 명시합니다.
- 자세한 내용은 Tomcat 구성 참조의 "system properties" 페이지를 참조하세요.
- 유사한 변수는 JAVA_OPTS입니다. 자주 사용되지는 않습니다. 이 변수는 Tomcat을 시작하고 중지하는데 사용되는 옵션 사양 입니다.
- 참고: JAVA_OPTS를 사용하여 메모리 제한을 지정하지 마세요. 메모리 제한 설정은 CATALINA_OPTS에 속합니다.
- 자주 사용되는 또 다른 변수는 CATALINA_PID(*nix 전용)입니다. 이 변수는 Tomcat의 프로세스 ID가 있는 파일의 위치를 지정합니다. 이 설정은 선택 사항입니다. 다음 기능이 활성화됩니다:
* 중복 시작 시도에 대한 더 나은 보호
* Tomcat 프로세스가 일반적인 shutdown 명령에 반응하지 않을 때 강제 종료
- "setenv" 스크립트 사용(선택, 권장)
- CATALINA_HOME 및 CATALINA_BASE를 제외한 모든 환경 변수는"setenv" 스크립트에 지정해야 합니다. 스크립트는 CATALINA_BASE/bin 또는 CATALINA_HOME/bin 디렉터리로 이동하고 환경에 맞기 이름을 지정합니다. setenv.bat(Windows) 또는 setenv.sh(*nix).
- 기본적으로 setenv 스크립트 파일은 없습니다. CATALINA_BASE와 CATALINA_HOME 모두에서 스크립트 파일이 있는 경우 CATALINA_BASE에 있는 것을 우선으로 선택합니다.
예를 들어 JRE_HOME 및 CATALINA_PID 변수를 구성하려면 다음을 수행합니다. 다음 스크립트 파일을 만듭니다.
- Windows의 경우, %CATALINA_BASE%\bin\setenv.bat:
set "JRE_HOME=%ProgramFiles%\Java\jre8"
exit /b 0
- *nix의 경우, $CATALINA_BASE/bin/setenv.sh:
JRE_HOME=/usr/java/latest
CATALINA_PID="/run/tomcat.pid"
- CATALINA_HOME 및 CATALINA_BASE 변수는 해당 파일을 찾는 데 사용되기 때문 setenv 스크립트에 구성될 수 없습니다.
여기에 설명된 모든 환경 변수와 "setenv" 스크립트는 표준 스크립트를 사용하여 Tomcat을 시작하는 경우에만 사용됩니다. - 예를 들어, Windows에 Tomcat을 서비스로 설치했다면, 서비스 래퍼는 Java를 직접 실행하고 스크립트 파일을 사용하지 않습니다.
- 톰캣 시작하기
- 다음 명령 중 하나를 실행하여 Tomcat을 시작할 수 있습니다.
- Windows에서:
%CATALINA_HOME%\bin\startup.bat 또는 %CATALINA_HOME%\bin\catalina.bat start
*nix에서:
$CATALINA_HOME/bin/startup.sh 또는 $CATALINA_HOME/bin/catalina.sh start
- 톰캣 종료
- 다음 명령 중 하나를 실행하여 Tomcat을 종료할 수 있습니다.
Windows에서:
%CATALINA_HOME%\bin\shutdown.bat 또는 %CATALINA_HOME%\bin\catalina.bat stop
*nix에서:
$CATALINA_HOME/bin/shutdown.sh 또는 $CATALINA_HOME/bin/catalina.sh stop
멀티 톰캣 인스턴스 구성
많은 상황에서 동일한 서버의 여러 사용자가 톰캣 바이너리 배포판의 단일 복사본을 공유하는 것은 바람직합니다.
이를 가능하게 하기위해 CATALINA_BASE 환경 변수를 '개인' Tomcat 인스턴스에 대한 파일이 포함된 디렉토리로 설정할 수 있습니다.
별도의 CATALINA_HOME 및 CATALINA_BASE로 실행하면 파일과 디렉토리는 다음과 같이 분할됩니다.
CATALINA_BASE에서:
* bin - 다음 파일만:
* setenv.sh (*nix) 또는 setenv.bat (Windows),
* tomcat-juli.jar
* conf - 서버 구성 파일(server.xml 포함)
* lib - 아래에 설명된 라이브러리 및 클래스
* 로그 - 로그 및 출력 파일
* webapps - 자동으로 로드되는 웹 애플리케이션
* work - 웹 애플리케이션을 위한 임시 작업 디렉토리
* temp - JVM에서 임시 파일용으로 사용하는 디렉토리(java.io.tmpdir)
CATALINA_HOME에서:
* bin - 시작 및 종료 스크립트
다음 파일이 CATALINA_BASE/bin 경로에 없는 경우에만 사용됩니다.
setenv.sh(*nix), setenv.bat(Windows), tomcat-juli.jar
* lib - 아래에 설명된 라이브러리 및 클래스
기본 구성에서 CATALINA_BASE/lib 및 CATALINA_HOME/lib에 있는 JAR 라이브러리와 클래스는 모두 공통 클래스경로에 추가됩니다. CATALINA_BASE에 있는 것이 먼저 추가되므로 먼저 검색됩니다.
CATALINA_HOME/lib에는 표준 Tomcat 라이브러리를 남겨두고 CATALINA_BASE/lib에는 데이터베이스 드라이버와 같은 다른 라이브러리를 추가할 수 있습니다.
일반적으로 웹 애플리케이션 간에 라이브러리를 공유하지 않고 응용 프로그램 내부의 WEB-INF/lib 디렉토리에 두는것이 좋습니다.
CATALINA_HOME 및 CATALINA_BASE 값은 Tomcat에 의해 각각 ${catalina.home} 및 ${catalina.base}로 처리되어 XML 구성 파일에서 참조될 수 있습니다.
예를 들어 표준 관리자 웹 애플리케이션은 CATALINA_HOME/webapps/manager 위치에 보관하고, 해당 배포 설명자를 원하는 가상 호스트로 복사하여 CATALINA_BASE에 로드합니다.
* CATALINA_HOME/webapps/manager/META-INF/context.xml파일을CATALINA_BASE/conf/Catalina/localhost/manager.xml로 복사 합니다.
* 아래와 같이 docBase 속성을 추가합니다.
<?xml version="1.0" encoding="UTF-8"?>
<Context docBase="${catalina.home}/webapps/manager" antiResourceLocking="false" privileged="true" >
<Valve className="org.apache.catalina.valves.RemoteAddrValve" allow="127\.0\.0\.1" />
<Manager sessionAttributeValueClassNameFilter="java\.lang\.(?:Boolean|Integer|Long|Number|String)|org\.apache\.catalina\.filters\.CsrfPreventionFilter\$LruCache(?:\$1)?|java\.util\.(?:Linked)?HashMap"/>
</Context>
참조:
'Server' 카테고리의 다른 글
[Apache] Installing Apache Server 2.4 Source on CentOS 7 (0) | 2024.01.05 |
---|