Kuinka ajaa useita verkkosovelluksia yhdessä Apache Tomcat -palvelimessa


Apache Tomcat on avoimen lähdekoodin verkkosäilö, jonka avulla voit ottaa käyttöön Java Servletit, JSP ja Web Sockets. Java-koodilla toimiva verkkopalvelin. Se voidaan myös tunnistaa cross-platform-servlet-säiliöksi tai verkkosäiliöksi.

Yksinkertaisesti sanottuna Tomcat on erittäin suosittu monien teollisuuden sidosryhmien keskuudessa, koska sillä on monia etuja muihin markkinoilla oleviin verkkosäiliöihin verrattuna. Voit luoda verkkoarkistoja Java-projektistasi ja ottaa sen käyttöön tomcat-säilön sisällä Java-koodatun HTTP-verkkopalvelimen isännöimiseksi. Teollisuus valitsee apache tomcatin muiden säiliöiden sijaan seuraavien etujen vuoksi.

  1. Kevyt paino.
  2. Laajasti käytetty.
  3. Paljon nopeampi kuin muut säiliöt.
  4. Helppo konfiguroida.
  5. Erittäin joustava.

Yleensä apache tomcat on käyttäjäystävällinen tuote, joka antaa suunnittelijoille tilaa ottaa käyttöön WAR-artefaktit (Web-arkistot) minimaalisilla kokoonpanomuutoksilla.

Tämä viesti on suunnattu yleisölle, joka jo käyttää tomcatia ja osaa käynnistää ja käyttää apache tomcat -moottoria.

Apache tomcatissa WAR:t tulee laittaa webapps-hakemistoon, jossa säilö ottaa ne käyttöön oletuksena. Yksinkertaisesti webapps-hakemisto toimii Java-koodin pääsäiliönä, jonka avulla tomcat voi ottaa sen käyttöön verkkopalvelimena.

Skenaariossa, jossa meidän täytyy isännöidä useampaa kuin yhtä verkkopalvelinta yhdestä tomcat-säiliöstä, voit käyttää tätä viestiä oppaana sen suorittamiseen. Aion näyttää sinulle, kuinka voit ottaa käyttöön useita verkkosovelluksia tai kaksi verkkopalvelinta yhdessä tomcatissa tästä artikkelista.

Edellytykset: Java tulee olla asennettuna palvelimelle. Mieluiten 1.7.x tai uudempi. Tässä opetusohjelmassa minulla on asennettuna Java 1.7, koska käytän tomcatin versiota 8.0.37.

Voit asentaa Javan käyttämällä paketinhallintaasi, kuten yum tai apt, kuten kuvassa:

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

Vaihe 1: Asenna Apache Tomcat Server

1. Luo ensin erillinen tomcat-käyttäjä root-tilin avulla.

useradd tomcat
passwd tomcat

Kirjaudu nyt sisään tomcat-käyttäjänä ja lataa uusin apache tomcat -paketti viralliselta sivustolta täältä: https://tomcat.apache.org/ tai vaihtoehtoisesti voit käyttää seuraavaa wget-komentoa ladataksesi suoraan terminaaliin. .

Tässä tapauksessa lataan Apache Tomcatin, 8.5.5, joka on yksi uusimmista tähän mennessä julkaistuista vakaista versioista.

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

2. Kun tiedosto on ladattu, pura sisältö tar-komennolla ja tarkastele hakemistorakennetta kuvan mukaisesti:

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

Vaihe 2: Määritä Apache Tomcat -palvelin

3. Etsimämme asetusmuutos on conf-hakemistossa, ja sitä käytetään kaikkien tomcatin käynnistymisen helpottavien asetustiedostojen sijoittamiseen.

conf-hakemiston sisältö näyttää alla.

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. Tässä tapauksessa minulle on tärkeää server.xml-tiedosto. Joten en aio tehdä syvällistä selitystä muista tiedostoista tai hakemistoista.

server.xml on määritystiedosto, joka kertoo tomcatille, mikä portti se käynnistetään, mikä hakemiston sisältö otetaan käyttöön ja monet muut pää- ja perusmääritykset.

Se näyttää periaatteessa tältä alla, kun avaat tiedoston.

vim server.xml

Vaihe 3: Verkkosovellusten käyttöönotto Apache Tomcatissa

5. Nyt otamme käyttöön uuden verkkosovelluksen Apache tomcatissa, etsi ensin paikka, jossa palvelutunniste on suljettu ja lisää rivit ensimmäisen suljetun jälkeen. palvelumerkki.

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

Kuten näet, olen vaihtanut liitinportiksi 7070 äskettäin lisätyssä merkinnässä, koska oletustomcat alkaa portilla 8080. Kun tämä on määritetty kokonaan, porttien 8080 ja 7070 alla toimii kaksi verkkopalvelinta.

6. Kun olet tallentanut tiedostoon server.xml tehdyn muutoksen, luo apacheen hakemisto nimeltä webapps2 apachen päähakemistossa.

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

Jos huomaat antamani uuden server.xml-merkinnän, sinun pitäisi nähdä, että palvelun nimi, sovelluskanta ja moottori on nimetty nimellä webapps2. Tästä syystä loin hakemiston nimeltä webapps2. Voit luoda sellaisen haluamallasi tavalla, mutta muista tehdä tarvittavat muutokset merkintään.

7. Varmistaakseni, että toinen verkkopalvelin on toiminnassa, kopioin webapps-hakemiston sisällön webapps2-hakemistoon.

cp -r webapps/* webapps2/

8. Nyt jännittävä osa. Käynnistämme palvelimen ja katsomme, toimiiko se. Siirry hakemistoon bin ja suorita komentosarja startup.sh. Voit tarkastella lokit catalina.out-tiedostossa, joka sijaitsee lokihakemistossa.

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. Jos viittaat lokeihin, voit nähdä, että sekä webapps että webapps2 on otettu käyttöön ja sovellus käynnistetään ilman ongelmia .

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. Tässä skenaariossa käyttämäni palvelimen IP-osoite on 172.16.1.39 ja voit nähdä, että voisin käynnistää kaksi verkkopalvelinta yhdessä tomcat-säilön sisällä.

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

Toivottavasti tämä artikkeli on hyödyllinen ja miellyttävä. Pidä yhteyttä TecMintiin ja ota minuun yhteyttä, jos sinulla on kysyttävää tästä artikkelista.