Wéi Run Multiple Web Uwendungen an engem Apache Tomcat Server


Apache Tomcat ass en Open Source Web Container deen Iech erlaabt Java Servlets, JSP a Web Sockets z'installéieren fir e Webserver mat Java Code ze lafen. Et kann och als Cross-Plattform Servlet Container oder e Web Container identifizéiert ginn.

Einfach, Tomcat ass e ganz populär bei villen industriellen Akteuren wéinst ville Virdeeler iwwer aner Webbehälter um Maart. Dir kënnt Webarchiven aus Ärem Java-Projet erstellen an einfach an engem Tomcat-Container ofsetzen fir en HTTP-Webserver kodéiert vu Java ze hosten. Industrien wielen Apache Tomcat iwwer aner Container wéinst folgende Virdeeler.

  1. Liicht Gewiicht.
  2. Wäit benotzt.
  3. Vill méi séier wéi aner Container.
  4. Einfach ze konfiguréieren.
  5. Ganz flexibel.

Normalerweis ass Apache Tomcat e userfrëndlecht Produkt dat den Ingenieuren Plaz gëtt fir hir WAR Artefakte (Web ARchives) mat minimale Konfiguratiounsännerungen z'installéieren.

Dëse Post zielt op e Publikum dee schonn den Tomcat benotzt a weess wéi een den Apache Tomcat Motor starten an benotzen.

Am Apache Tomcat sollten WARs an de webapps Verzeechnes gesat ginn, deen de Container se als Standard ofsetzt. Einfach, Webapps Verzeechnes handelt als Haaptbehälter vum Java Code fir Tomcat fir en als Webserver z'installéieren.

An engem Szenario dee mir brauchen fir méi wéi ee Webserver vun engem eenzegen Tomcat Container ze hosten, kënnt Dir dëse Post als Guide benotzen fir et z'erreechen. Ech weisen Iech wéi Dir verschidde Webapplikatiounen oder zwee Webserver an engem Tomcat aus dësem Artikel ofsetzt.

Viraussetzunge: Java soll am Server installéiert ginn. Am léifsten 1.7.x oder méi héich. An dësem Tutorial hunn ech Java 1.7 installéiert well ech d'Tomcat Versioun 8.0.37 benotzen.

Dir kënnt Java mat Ärem Package Manager installéieren wéi Yum oder apt wéi gewisen:

# yum install java              [On CentOS based Systems]
# apt-get install default-jre   [On Debian based Systems]

Schrëtt 1: Installéiert den Apache Tomcat Server

1. Erstellt fir d'éischt e separaten tomcat Benotzer mat Root Account.

# useradd tomcat
# passwd tomcat

Login elo als Tomcat Benotzer an luet de leschten Apache Tomcat Bündel vun der offizieller Säit hei erof: wget Kommando fir direkt am Terminal erofzelueden.

An dësem Fall download ech Apache Tomcat, 8.5.5, wat eng vun de leschte stabile Versiounen ass, déi elo verëffentlecht ginn.

$ wget http://redrockdigimark.com/apachemirror/tomcat/tomcat-8/v8.5.5/bin/apache-tomcat-8.5.5.tar.gz

2. Wann d'Datei erofgeluede gouf, dekompriméiert den Inhalt mam Tar Kommando a kuckt d'Verzeichnisstruktur wéi gewisen:

$ 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

Schrëtt 2: Apache Tomcat Server konfiguréieren

3. D'Konfiguratiounsännerung, déi mir sichen, läit am Conf-Verzeichnis, gëtt benotzt fir all d'Konfiguratiounsdateien ze placéieren, déi Tomcat hëllefe fir opzemaachen.

Den Inhalt vum conf Verzeichnis gesäit aus wéi hei drënner.

$ 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. An dësem Fall, wat fir mech wichteg ass, ass d'Datei server.xml. Also ech wäert net eng detailléiert Erklärung iwwer aner Dateien oder Verzeichnisser maachen.

De server.xml ass d'Konfiguratiounsdatei, déi dem Tomcat erzielt, wéi en Hafen et opzefänken, wéi eng Verzeechnesinhalt fir z'installéieren a vill méi Haapt- a Basiskonfiguratiounen.

Et gesäit am Fong aus wéi hei drënner nodeems Dir d'Datei opgemaach hutt.

$ vim server.xml

Schrëtt 3: Deploy Web Apps an Apache Tomcat

5. Elo wäerte mir eng nei Webapplikatioun am Apache Tomcat ofsetzen, fir d'éischt d'Plaz ze fannen wou de Service Tag zougemaach ass a setzt ënnert Zeilen no der éischter zougemaach Service Tag.

<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>

Wéi Dir gesitt, hunn ech de Connector Hafen op 7070 an der nei agebauter Entrée geännert zënter dem Standard Tomcat fänkt mam Hafen 8080. Nodeems Dir dëst komplett opgeriicht hutt, ginn et zwee Webserveren ënner den Ports 8080 an 7070.

6. Nodeems Dir d'Ännerung op server.xml gespäichert hutt, erstellt e Verzeichnis an der Apache mam Numm webapps2 an der Apache Main.

$ cd /home/tomcat/apache-tomcat-8.5.5/
$ mkdir webapps2

Wann Dir den server.xml neien Entrée observéiert, deen ech geliwwert hunn, sollt Dir gesinn datt de Servicenumm, d'App Basis an de Motor als Webapps2 benannt gëtt. Dat ass de Grond firwat ech den Verzeechnes mam Numm webapps2 erstallt hunn. Dir kënnt een erstellen wéi Dir wëllt, awer vergewëssert Iech datt Dir Ännerungen un der Entrée maacht wéi et néideg ass.

7. Fir sécherzestellen, datt den zweeten Webserver op a lafen ass, hunn ech den Inhalt vum Webapps-Verzeichnis op webapps2-Verzeichnis kopéiert.

$ cp -r webapps/* webapps2/

8. Elo de spannenden Deel. Mir starten de Server a kucken ob et funktionnéiert. Gitt op bin Verzeichnis an fuert de startup.sh Skript aus. Dir kënnt d'Logbicher an der catalina.out Datei kucken, déi am Logbicherverzeechnes wunnt.

$ 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. Wann Dir d'Logbicher referéiert, kënnt Dir gesinn datt souwuel webapps wéi och webapps2 ofgesat sinn an d'App ouni Problem gestart gëtt.

$ 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. An dësem Szenario ass d'IP vum Server, deen ech benotzt hunn, 172.16.1.39 an Dir kënnt gesinn, datt ech zwee Webserver an engem eenzegen Tomcat-Container starten kéint.

http://172.16.1.39:8080   [1st Web App]
http://172.16.1.39:7070   [2nd Web App]

Hoffen Dir fannt all dësen Artikel nëtzlech an agreabel. Bleift a Kontakt mat TecMint a fillt sech gratis fir mech z'erreechen fir all Ufro iwwer dësen Artikel.