본문 바로가기
프로그램 활용/웹서버

하나의 Apache Tomcat 서버에서 여러 웹 응용 프로그램을 실행하는 방법

by 3604 2023. 11. 21.
728x90

출처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 계속 연락하고 기사에 대한 질문이 있으면 언제든지 저에게 연락하십시오.

728x90