출처: https://ko.linux-console.net/?p=1881
Apache Tomcat은 Java 서블릿, JSP 및 웹 소켓을 실행하도록 배포할 수 있는 오픈 소스 웹 컨테이너입니다. 자바 코드로 구동되는 웹 서버. 또한 교차 플랫폼 서블릿 컨테이너 또는 웹 컨테이너로 식별할 수 있습니다.
간단히 말해, Tomcat은 시장에 나와 있는 다른 웹 컨테이너에 비해 많은 이점이 있기 때문에 많은 산업 관계자 사이에서 매우 인기가 있습니다. Java 프로젝트에서 웹 아카이브를 생성하고 Tomcat 컨테이너 내에 배포하여 Java로 코딩된 HTTP 웹 서버를 호스팅할 수 있습니다. 업계에서는 다음과 같은 이점 때문에 다른 컨테이너보다 Apache Tomcat을 선택합니다.
1. 가벼움.
2. 널리 사용됨.
3. 다른 컨테이너보다 훨씬 빠릅니다.
4. 구성하기 쉽습니다.
5. 매우 유연합니다.
일반적으로 apache tomcat은 엔지니어가 최소한의 구성 변경으로 WAR 아티팩트(Web ARchives)를 배포할 수 있는 사용자 친화적인 제품입니다.
이 게시물은 이미 tomcat을 사용하고 있고 apache tomcat 엔진을 시작하고 사용하는 방법을 알고 있는 청중을 대상으로 합니다.
Apache Tomcat에서 WAR은 컨테이너가 기본적으로 배포하는 webapps 디렉토리에 넣어야 합니다. 간단히 말해서 webapps 디렉토리는 Tomcat이 웹 서버로 배포하기 위한 Java 코드의 기본 컨테이너 역할을 합니다.
단일 tomcat 컨테이너에서 둘 이상의 웹 서버를 호스팅해야 하는 시나리오에서 이 게시물을 가이드로 사용하여 이를 수행할 수 있습니다. 이 기사에서 하나의 tomcat 내에서 여러 웹 응용 프로그램 또는 두 개의 웹 서버를 배포하는 방법을 보여 드리겠습니다.
전제 조건: Java가 서버에 설치되어 있어야 합니다. 바람직하게는 1.7.x 이상입니다. 이 튜토리얼에서는 Tomcat 버전 8.0.37을 사용하므로 Java 1.7이 설치되어 있습니다.
다음과 같이 yum 또는 apt와 같은 패키지 관리자를 사용하여 Java를 설치할 수 있습니다.
# yum install java [On CentOS based Systems]
# apt-get install default-jre [On Debian based Systems]
1단계: Apache Tomcat 서버 설치
1. 먼저 root 계정을 사용하여 별도의 tomcat 사용자를 만듭니다.
# useradd tomcat
# passwd tomcat
이제 tomcat 사용자로 로그인하고 공식 사이트(wget 명령)에서 최신 apache tomcat 번들을 다운로드하여 터미널에서 직접 다운로드합니다.
이 경우 현재 출시된 최신 안정 버전 중 하나인 Apache Tomcat 8.5.5를 다운로드합니다.
$ wget http://redrockdigimark.com/apachemirror/tomcat/tomcat-8/v8.5.5/bin/apache-tomcat-8.5.5.tar.gz
2. 파일이 다운로드되면 tar 명령을 사용하여 콘텐츠 압축을 풀고 다음과 같이 디렉토리 구조를 봅니다.
$ tar -xvf apache-tomcat-8.5.5.tar.gz
$ cd apache-tomcat-8.5.5/
$ ls -l
total 112
drwxr-x---. 2 tomcat tomcat 4096 Sep 29 11:26 bin
drwx------. 2 tomcat tomcat 4096 Sep 1 01:23 conf
drwxr-x---. 2 tomcat tomcat 4096 Sep 29 11:26 lib
-rw-r-----. 1 tomcat tomcat 57092 Sep 1 01:23 LICENSE
drwxr-x---. 2 tomcat tomcat 4096 Sep 1 01:21 logs
-rw-r-----. 1 tomcat tomcat 1723 Sep 1 01:23 NOTICE
-rw-r-----. 1 tomcat tomcat 7063 Sep 1 01:23 RELEASE-NOTES
-rw-r-----. 1 tomcat tomcat 15946 Sep 1 01:23 RUNNING.txt
drwxr-x---. 2 tomcat tomcat 4096 Sep 29 11:26 temp
drwxr-x---. 7 tomcat tomcat 4096 Sep 1 01:22 webapps
drwxr-x---. 2 tomcat tomcat 4096 Sep 1 01:21 work
2단계: Apache Tomcat 서버 구성
3. 우리가 찾고 있는 구성 변경은 conf 디렉토리 내에 있으며 tomcat 시작을 돕는 모든 구성 파일을 배치하는 데 사용됩니다.
conf 디렉토리의 내용은 아래와 같습니다.
$ cd conf/
$ ls -l
total 224
-rw-------. 1 tomcat tomcat 12502 Sep 1 01:23 catalina.policy
-rw-------. 1 tomcat tomcat 7203 Sep 1 01:23 catalina.properties
-rw-------. 1 tomcat tomcat 1338 Sep 1 01:23 context.xml
-rw-------. 1 tomcat tomcat 1149 Sep 1 01:23 jaspic-providers.xml
-rw-------. 1 tomcat tomcat 2358 Sep 1 01:23 jaspic-providers.xsd
-rw-------. 1 tomcat tomcat 3622 Sep 1 01:23 logging.properties
-rw-------. 1 tomcat tomcat 7283 Sep 1 01:23 server.xml
-rw-------. 1 tomcat tomcat 2164 Sep 1 01:23 tomcat-users.xml
-rw-------. 1 tomcat tomcat 2633 Sep 1 01:23 tomcat-users.xsd
-rw-------. 1 tomcat tomcat 168133 Sep 1 01:23 web.xml
4. 이 경우 저에게 중요한 것은 server.xml 파일입니다. 따라서 다른 파일이나 디렉토리에 대한 자세한 설명은 하지 않겠습니다.
server.xml은 tomcat에 시작할 포트, 배포할 디렉토리 콘텐츠 및 더 많은 주요 및 기본 구성을 알려주는 구성 파일입니다.
파일을 열면 기본적으로 아래와 같습니다.
$ vim server.xml
3단계: Apache Tomcat에서 웹 앱 배포
5. 이제 Apache tomcat에 새 웹 애플리케이션을 배포합니다. 먼저 서비스 태그가 닫힌 위치 를 찾아 첫 번째 닫힌 후 아래 줄에 삽입합니다. 서비스 태그.
<Service name="webapps2">
<Connector port="7070" maxHttpHeaderSize="7192"
maxThreads="150" minSpareThreads="25" maxSpareThreads="75"
enableLookups="false" redirectPort="7443" acceptCount="100"
connectionTimeout="20000" disableUploadTimeout="true" />
<Connector port="7072"
enableLookups="false" redirectPort="7043" protocol="AJP/1.3" />
<Engine name="webapps2" defaultHost="localhost">
<Realm className="org.apache.catalina.realm.UserDatabaseRealm"
resourceName="UserDatabase"/>
<Host name="localhost" appBase="webapps2"
unpackWARs="true" autoDeploy="true"
xmlValidation="false" xmlNamespaceAware="false">
</Host>
</Engine>
</Service>
보시다시피 기본 tomcat은 포트 8080으로 시작하므로 새로 삽입한 항목에서 커넥터 포트를 7070으로 변경했습니다. 이를 완전히 설정하면 8080 및 7070 포트에서 두 개의 웹 서버가 실행됩니다.
6. server.xml에 대한 변경 사항을 저장한 후 apache main 내에 webapps2라는 apache 디렉토리를 생성합니다.
$ cd /home/tomcat/apache-tomcat-8.5.5/
$ mkdir webapps2
내가 제공한 server.xml 새 항목을 관찰하면 서비스 이름, 앱 기반 및 엔진 이름이 webapps2로 지정되어 있는 것을 볼 수 있습니다. 이것이 제가 webapps2라는 디렉토리를 만든 이유입니다. 원하는 대로 만들 수 있지만 필요에 따라 항목을 변경해야 합니다.
7. 두 번째 웹 서버가 실행 중인지 확인하기 위해 webapps 디렉토리의 콘텐츠를 webapps2 디렉토리에 복사했습니다.
$ cp -r webapps/* webapps2/
8. 이제 흥미로운 부분입니다. 서버를 시작하고 작동하는지 확인하겠습니다. bin 디렉토리로 이동하여 startup.sh 스크립트를 실행합니다. 로그 디렉토리에 있는 catalina.out 파일에서 로그를 볼 수 있습니다.
$ cd bin/
$ ./startup.sh
Using CATALINA_BASE: /home/tomcat/apache-tomcat-8.5.5
Using CATALINA_HOME: /home/tomcat/apache-tomcat-8.5.5
Using CATALINA_TMPDIR: /home/tomcat/apache-tomcat-8.5.5/temp
Using JRE_HOME: /usr
Using CLASSPATH: /home/tomcat/apache-tomcat-8.5.5/bin/bootstrap.jar:/home/tomcat/apache-tomcat-8.5.5/bin/tomcat-juli.jar
Tomcat started.
9. 로그를 참조하면 webapps와 webapps2가 모두 배포되고 문제 없이 앱이 시작되는 것을 확인할 수 있습니다. .
$ cd logs/
$ tail -25f catalina.out
29-Sep-2016 12:13:51.210 INFO [localhost-startStop-1] org.apache.catalina.startup.HostConfig.deployDirectory Deploying web application directory /home/tomcat/apache-tomcat-8.5.5/webapps/examples
29-Sep-2016 12:13:51.661 INFO [localhost-startStop-1] org.apache.catalina.startup.HostConfig.deployDirectory Deployment of web application directory /home/tomcat/apache-tomcat-8.5.5/webapps/examples has finished in 452 ms
29-Sep-2016 12:13:51.664 INFO [localhost-startStop-1] org.apache.catalina.startup.HostConfig.deployDirectory Deploying web application directory /home/tomcat/apache-tomcat-8.5.5/webapps/docs
29-Sep-2016 12:13:51.703 INFO [localhost-startStop-1] org.apache.catalina.startup.HostConfig.deployDirectory Deployment of web application directory /home/tomcat/apache-tomcat-8.5.5/webapps/docs has finished in 39 ms
29-Sep-2016 12:13:51.704 INFO [localhost-startStop-1] org.apache.catalina.startup.HostConfig.deployDirectory Deploying web application directory /home/tomcat/apache-tomcat-8.5.5/webapps/host-manager
29-Sep-2016 12:13:51.744 INFO [localhost-startStop-1] org.apache.catalina.startup.HostConfig.deployDirectory Deployment of web application directory /home/tomcat/apache-tomcat-8.5.5/webapps/host-manager has finished in 39 ms
29-Sep-2016 12:13:51.748 INFO [main] org.apache.coyote.AbstractProtocol.start Starting ProtocolHandler [http-nio-8080]
29-Sep-2016 12:13:51.767 INFO [main] org.apache.coyote.AbstractProtocol.start Starting ProtocolHandler [ajp-nio-8009]
29-Sep-2016 12:13:51.768 INFO [main] org.apache.catalina.core.StandardService.startInternal Starting service webapps2
29-Sep-2016 12:13:51.768 INFO [main] org.apache.catalina.core.StandardEngine.startInternal Starting Servlet Engine: Apache Tomcat/8.5.5
29-Sep-2016 12:13:51.777 INFO [localhost-startStop-1] org.apache.catalina.startup.HostConfig.deployDirectory Deploying web application directory /home/tomcat/apache-tomcat-8.5.5/webapps2/manager
29-Sep-2016 12:13:51.879 INFO [localhost-startStop-1] org.apache.catalina.startup.HostConfig.deployDirectory Deployment of web application directory /home/tomcat/apache-tomcat-8.5.5/webapps2/manager has finished in 102 ms
29-Sep-2016 12:13:51.879 INFO [localhost-startStop-1] org.apache.catalina.startup.HostConfig.deployDirectory Deploying web application directory /home/tomcat/apache-tomcat-8.5.5/webapps2/ROOT
29-Sep-2016 12:13:51.915 INFO [localhost-startStop-1] org.apache.catalina.startup.HostConfig.deployDirectory Deployment of web application directory /home/tomcat/apache-tomcat-8.5.5/webapps2/ROOT has finished in 35 ms
29-Sep-2016 12:13:51.927 INFO [localhost-startStop-1] org.apache.catalina.startup.HostConfig.deployDirectory Deploying web application directory /home/tomcat/apache-tomcat-8.5.5/webapps2/examples
29-Sep-2016 12:13:52.323 INFO [localhost-startStop-1] org.apache.catalina.core.ApplicationContext.log ContextListener: contextInitialized()
29-Sep-2016 12:13:52.337 INFO [localhost-startStop-1] org.apache.catalina.core.ApplicationContext.log SessionListener: contextInitialized()
29-Sep-2016 12:13:52.341 INFO [localhost-startStop-1] org.apache.catalina.startup.HostConfig.deployDirectory Deployment of web application directory /home/tomcat/apache-tomcat-8.5.5/webapps2/examples has finished in 414 ms
29-Sep-2016 12:13:52.341 INFO [localhost-startStop-1] org.apache.catalina.startup.HostConfig.deployDirectory Deploying web application directory /home/tomcat/apache-tomcat-8.5.5/webapps2/docs
29-Sep-2016 12:13:52.371 INFO [localhost-startStop-1] org.apache.catalina.startup.HostConfig.deployDirectory Deployment of web application directory /home/tomcat/apache-tomcat-8.5.5/webapps2/docs has finished in 29 ms
29-Sep-2016 12:13:52.371 INFO [localhost-startStop-1] org.apache.catalina.startup.HostConfig.deployDirectory Deploying web application directory /home/tomcat/apache-tomcat-8.5.5/webapps2/host-manager
29-Sep-2016 12:13:52.417 INFO [localhost-startStop-1] org.apache.catalina.startup.HostConfig.deployDirectory Deployment of web application directory /home/tomcat/apache-tomcat-8.5.5/webapps2/host-manager has finished in 46 ms
...
10. 이 시나리오에서 내가 사용한 서버의 IP는 172.16.1.39이며 단일 tomcat 컨테이너 내에서 두 개의 웹 서버를 시작할 수 있음을 알 수 있습니다.
http://172.16.1.39:8080 [1st Web App]
http://172.16.1.39:7070 [2nd Web App]
이 기사가 유용하고 즐거웠기를 바랍니다. TecMint와 계속 연락하고 이 기사에 대한 질문이 있으면 언제든지 저에게 연락하십시오.
'프로그램 활용 > 웹서버' 카테고리의 다른 글
[Windows] 웹 사이트 도메인 IP 주소 확인하기 (nslookup) (1) | 2023.11.27 |
---|---|
Tomcat 서브도메인 호스트 설정(웹서버 가상호스트 추가) (2) | 2023.11.24 |
[Linux] CentOS 7 - Apache2.4 다운로드 및 컴파일 (0) | 2023.11.15 |
톰캣 (Tomcat)에 라이브러리 (Library) 추가하기 (1) | 2023.11.14 |
tomcat의 구동 스크립트에 환경변수를 추가하여 java 메모리튜닝 및 외부 라이브러리 경로 설정 (1) | 2023.11.14 |